微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Okta身份验证登录

如何解决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 举报,一经查实,本站将立刻删除。