我目前有一个使用Auth0进行身份验证的Angular 2应用程序。一切正常,但登录服务中的回调网址仅适用于实时网站。因此,当我在localhost上运行我的开发代码并进行登录时,它总是将我重定向到我网站的实时版本,我不想在我的部署之间来回更改一行代码。我正在本地测试。这是auth.service.ts中的登录方法。
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 :(得分: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'
});