Angular oidc 客户端页面重新加载

问题描述

我在带有 Identity Server 4 的 Angular 10 应用中使用 npm 包 oidc-client

我发现当我在浏览器中重新加载网页时,它总是重定向到主页并且不记得当前的角度路线。

我发现这是因为当页面重新加载时,UserManager 尝试刷新用户对象,但这是异步完成的,因此 AuthGuard 看到 null {1}} 因为它还没有加载。

这能解决吗。怎么样?

user

@Injectable({ providedIn: 'root' }) export class AuthService { private manager = new UserManager(getClientSettings(this.appSettingsService)); private user: User | null; constructor(private appSettingsService: AppSettingsService) { // This should wait until the user has acually loaded. Doing async just makes everything break. this.manager.getUser().then(user => { this.user = user; }); } login() { return this.manager.signinRedirect(); } async completeAuthentication() { this.user = await this.manager.signinRedirectCallback(); } isAuthenticated(): boolean { // This needs to be made to wait until the user has loaded. return this.user != null && !this.user.expired; } 更改为 isAuthenticated(): boolean 似乎是不可能的,因为在 isAuthenticated(): Observable<boolean> 中需要它,其中 AuthGuard 必须返回 canActivate 而不是 {{1} } 所以有必要去掉 boolean

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)