如何解决Okta身份验证登录
tl; dr:执行await oktaAuthService.login('/');
后,下一条指令将被跳过。
import {Injectable} from '@angular/core';
import {OktaAuthService} from '@okta/okta-angular';
@Injectable({
providedIn: 'root'
})
export class AuthService {
this.user = undefined;
constructor(private oktaAuthService: OktaAuthService,private bkndSrv: BackendService) {}
async login() {
await this.oktaAuthService.login('/');
// the next 2 lines are not being executing!
this.user = await this.oktaAuth.getUser();
console.log("user: ",this.user);
}
当我调用login()
函数时,我被重定向到okta登录页面,并且成功地被令牌重定向回了我。但是,我看不到屏幕上的日志,即使登录功能完成后,this.user
仍未定义。
任何帮助将不胜感激!
解决方法
好吧,重构为.then
表示法做到了。即
login() {
this. oktaAuthService.login('/').then(() => {
this. oktaAuthService.getUser().then((user) => {
this.user = user;
console.log('user: ',this.user);
});
});
}
但是,如果有人知道如何使用异步等待,请分享!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。