发送responseType ='id_token'

时间:2019-12-06 08:05:40

标签: openid-connect okta

我使用的是OKTA,登录后获取id_token作为URL中的响应。问题是,每当我调用this.oauthService.getIdToken()时,我都会得到null。下面是我的配置。

import { AuthConfig } from 'angular-oauth2-oidc';

export const authConfig: AuthConfig = {
  issuer: 'https://dev-350189.okta.com',
  clientId: "XXXXXXX",
  logoutUrl: "https://dev-350189.okta.com/oauth2/v1/logout",
  redirectUri: window.location.origin +'/home',
  scope: 'openid profile',
  responseType: 'id_token',
  oidc: true,
  requestAccessToken: true,
  showDebugInformation: true,
  clearHashAfterLogin: false,
}

app.component.ts

private configure() {
        this.oauthService.configure(authConfig);
        this.oauthService.setStorage(localStorage);
        this.oauthService.tokenValidationHandler = new JwksValidationHandler();

        this.oauthService.createAndSaveNonce().then(nonce => {
            console.log('Nonce generated', nonce);
            this.oauthService.customQueryParams = { "nonce": nonce };

            // Load Discovery Document and then try to login the user
            this.oauthService.loadDiscoveryDocument().then(() => {
                this.oauthService.tryLogin().then(() => {
                    console.log("final output");
                    console.log(this.oauthService.getIdToken());
                });
            });
        });
    }

请帮助我两天以来挣扎的人们。

1 个答案:

答案 0 :(得分:1)

我有一个有效的Okta示例,可能会有所帮助-尝试使用与这些设置相同的设置: https://github.com/gary-archer/authguidance.websample1/blob/master/spa/src/plumbing/oauth/authenticator.ts

当今最标准的流程是response_type ='code',这意味着Okta完全支持的授权代码流程(PKCE)。

如果有帮助,示例中的README文件可以链接到某些博客文章