登录angular2后Auth0重定向回调用url [英] Auth0 redirecting back to call url after login angular2

查看:31
本文介绍了登录angular2后Auth0重定向回调用url的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

登录后,auth0 将我重定向回 angular2 上的回调 URL.我怎样才能让它转到我给路由的路径而不重定向到回调 url.

After login the auth0 redirects me back to the call back url on angular2. How can i make it go to the path that i gave to the routing without redirecting to the call back url.

推荐答案

我一直在解决同样的问题.. 看来你有几个选择.

I've been working through this same issue.. It seems you have a couple options.

这很容易实现,但由于浏览器不一致,Auth0 建议不要使用它.(即一些 IE 和 Chrome/Firefox在 iOS 上)

This is easy to implement but Auth0 recommends to not use this because of browser inconsistencies. (namely some IE and Chrome/Firefox on iOS)

就像在锁定选项对象中添加一个标志一样简单

It's as simple as adding a flag to your lock options object

var lockOptions = {
  auth: {
    redirect: false
  }
}

弹出模式文档

Auth0 建议将状态保存到 LocalStorage,如果您想让用户从上次中断的地方继续.

Auth0 suggests saving state to LocalStorage if you want to allow users to resume where they left off.

因此,就在触发 lock.show() 之前,您可以将当前 URL/路径/状态/等保存到本地存储中.就我而言,我使用的是 authGuard.

So, just before triggering lock.show(), you could save the current URL/path/state/etc into local storage. In my case, I'm using an authGuard.

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {
    if (this.authService.isLoggedIn) {
        return Promise.resolve(true);
    }

    // Store the attempted URL for redirecting after auth
    localStorage.setItem('redirectUrl', state.url);

    // Navigate to the login page
    this.router.navigate([`${environment.loggedOutRoute}`]);

    return Promise.resolve(false);
}

然后在您的身份验证回调中:

Then inside your auth callback:

// On authentication
this.lock.on('authenticated', (authResult: any) => {
    // Save the token in LS
    localStorage.setItem('token', authResult.idToken);

    // Hide the login modal
    this.lock.hide();

    // Redirect the user
    const redirectUrl: string = localStorage.getItem('redirectUrl');
    if (redirectUrl) {
        this.router.navigate([redirectUrl]);
    } else {
        this.router.navigate(['/overview']);
    }
});

这篇关于登录angular2后Auth0重定向回调用url的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆