使用Auth0登录我的应用程序后,我正在尝试订阅成功完成登录,然后重定向到请求的页面,但突出显示的行永远不会被调用。对Angular2和Observables来说很新,需要知道是否有更好的方法或我做错了什么?
更新:在一些播放之后,.subscribe()在Auth0 Lock组件呈现之前运行。然后使用creds登录,并且.subscribe()不会再次运行,因此不会重定向。
答案 0 :(得分:1)
我只是遵循官方的Auth0文档,并在设置用户个人资料后立即进行重定向。以下是官方文档的代码......
constructor(private router: Router) {
this.userProfile = JSON.parse(localStorage.getItem('profile'));
this.lock.on("authenticated", (authResult) => {
localStorage.setItem('id_token', authResult.idToken);
this.lock.getProfile(authResult.idToken, (error, profile) => {
if (error) {
alert(error);
return;
}
profile.user_metadata = profile.user_metadata || {};
localStorage.setItem('profile', JSON.stringify(profile));
this.userProfile = profile;
});
this.router.navigate(['/dashboard']);
});
}
具体来说,他们使用this.router.navigate(['/Whatever'])
希望这会有所帮助。这是官方文件https://auth0.com/docs/quickstart/spa/angular2/04-user-profile
无论您选择将实际路由选择放在何处,只需确保传入路由器即可。
修改强>
这是我发布的Auth0 doc https://auth0.com/docs/quickstart/spa/angular2/02-custom-login的Url I,请注意他们如何处理构造函数中的重定向而不是登录函数。