【发布时间】:2020-08-21 19:04:04
【问题描述】:
我想拥有 Auth0 的 ngrx。还在这里找到了很好的教程:https://auth0.com/blog/ngrx-authentication-tutorial/。问题是在重定向到登录模式并返回我的应用程序后,我失去了应用程序状态,所以看起来应用程序已重新启动。
你知道我能做什么吗?
还值得使用ngrx+auth0吗?
【问题讨论】:
我想拥有 Auth0 的 ngrx。还在这里找到了很好的教程:https://auth0.com/blog/ngrx-authentication-tutorial/。问题是在重定向到登录模式并返回我的应用程序后,我失去了应用程序状态,所以看起来应用程序已重新启动。
你知道我能做什么吗?
还值得使用ngrx+auth0吗?
【问题讨论】:
身份验证成功后,您可能需要将令牌存储到本地存储/会话存储中,然后当您的应用“重启”时,您可以检查之前保存的访问令牌,使用该令牌发出请求以获取用户信息并将其保存到状态中。
如果您正在与 OAuth 提供商集成,我建议您查看 this library
希望对您有所帮助!
【讨论】:
您可以调度您的操作并检查您的路由守卫中的状态。这样,您始终检查状态并更新任何授权路线是否为空。
checkLogin - 这将检查用户是否已通过身份验证。如果是,请获取用户配置文件和任何其他逻辑(本地存储、内存等),如果不是,则重定向到登录。selectIsAuthenticated - 来自通过上述检查设置的身份验证状态的布尔值。@Injectable({
providedIn: 'root'
})
export class AuthGuard implements CanActivate {
constructor(
private store: Store<AppStore>
) { }
canActivate(): Observable<boolean> {
this.store.dispatch(checkLogin());
return this.store.select(selectIsAuthenticated);
}
}
【讨论】: