使用angular-oauth2-oidc

时间:2020-07-26 17:26:25

标签: angular oauth-2.0 angular-oauth2-oidc

我正在使用angular-oauth2-oidc在angular 10应用程序中实现授权代码流。 主要思想很简单,我只有一个带有按钮的应用程序组件。用户单击它时,必须将其重定向到身份验证提供程序登录页面,并在成功登录后返回到应用程序。

身份验证由以下服务处理:

export class AuthenticationService {
  private authCodeFlowConfig: AuthConfig = {
    issuer: ...
  };

  constructor(public oauthService: OAuthService) {
    this.oauthService.configure(this.authCodeFlowConfig);

    if (location.href.indexOf('?code') > 0) {
      this.oauthService.loadDiscoveryDocumentAndLogin();
    }
  }

  async login(): Promise<void> {
    await this.oauthService.loadDiscoveryDocumentAndLogin();
  }
}

这行得通,但是我对构造函数中的URL检查感到有些困扰。但是,如果我不这样做,则成功登录后,用户将被正确重定向到登录页面并返回到应用程序,但是他陷入了代码流的中间。确实,授权代码存在于URL中,但是,angular-oauth2-oidc并未对其进行处理,因此如果存在“代码”查询字符串,我必须在构造函数中再次调用login方法。

我怀疑我做错了,因为我期望angular-oauth2-oidc会自动处理代码。

我在这里想念东西吗?

0 个答案:

没有答案