2017-07-06 23 views
1

我目前有一個Angular 2應用程序使用Auth0來進行身份驗證。一切工作正常,但登錄服務中的回調網址僅適用於實時網站。因此,當我在本地主機上運行我的開發代碼並登錄時,它總是將我重定向到我的網站的實時版本,我不想在部署和我之間來回更改一行代碼在本地測試。以下是auth.service.ts中的登錄方法。Auth0回調URL Live和開發

public login(): void { 

this.auth0.authorize({ 
    responseType: 'token id_token', 
    audience: 'https://xxxxxx/userinfo', 
    redirectUri: 'http://www.mylivewebsite.com/callback',  
    scope: 'openid' 
}); 

我在本地測試應用程序時使用這個。

public login(): void { 

this.auth0.authorize({ 
    responseType: 'token id_token', 
    audience: 'https://xxxxxx/userinfo', 
    redirectUri: 'http://localhost:4200/callback',  
    scope: 'openid' 
}); 

有沒有辦法來檢測我來自哪個網址並進行相應的調整?我覺得有一個簡單的答案,但我似乎找不到一種方法使其工作。

回答

0

我處理這個問題的方式是使用環境變量。許多人將使用NODE_ENV來確定應用是否處於開發或生產階段。

你可以這樣做:

public login(): void { 

this.auth0.authorize({ 
    responseType: 'token id_token', 
    audience: 'https://xxxxxx/userinfo', 

    redirectUri: (process.env.NODE_ENV === 'production') ? [deploy url] : [dev url], 

    scope: 'openid' 
});