使用Auth0成功登录后,重定向到页面的正确方法是什么?

时间:2016-12-29 18:56:44

标签: angular auth0

使用Auth0登录我的应用程序后,我正在尝试订阅成功完成登录,然后重定向到请求的页面,但突出显示的行永远不会被调用。对Angular2和Observables来说很新,需要知道是否有更好的方法或我做错了什么?

更新:在一些播放之后,.subscribe()在Auth0 Lock组件呈现之前运行。然后使用creds登录,并且.subscribe()不会再次运行,因此不会重定向。

enter image description here

1 个答案:

答案 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,请注意他们如何处理构造函数中的重定向而不是登录函数。