0

我正在尝试使用带有 PKCE 的授权代码流将 NextJS 应用程序与 Okta 集成。由于未执行令牌请求,因此流程未完成。

这是提供者的配置:

import NextAuth from 'next-auth';

const oktaBaseUrl = 'https://my-okta-domain.com/oauth2/[auth-server-id]';
const clientId = '[My Client Id]';

const authorizationUrl =
  oktaBaseUrl +
  '/v1/authorize?response_type=code&response_mode=query&state=false';

const accessTokenUrl = oktaBaseUrl + '/v1/token';
const profileUrl = oktaBaseUrl + '/v1/userinfo';

export default NextAuth({
  providers: [
    {
      id: 'okta',
      name: 'Okta',
      type: 'oauth',
      version: '2.0',
      protection: 'pkce',
      clientId,
      clientSecret: '',
      accessTokenUrl,
      authorizationUrl,
      profileUrl,
      scope: 'services',
      params: {
        grant_type: 'authorization_code',
      },
      profile(profile) {
        return {
          id: profile.id as string,
          name: profile.name,
          email: profile.email
        };
      }
    }
  ],
});

第一阶段似乎正确执行,但是当 okta 返回代码时,我只在我的应用程序中看到一条消息,显示 403 代码。似乎它正在尝试获取代码而不执行对令牌端点的请求

图片

控制台中的消息:

[next-auth][error][oauth_get_access_token_error]
https://next-auth.js.org/errors#oauth_get_access_token_error { statusCode: 403, data: '' } okta y64EzO0u9ZbwqFdjJWqapXggDmC1bWx2DGQaITCpta4
[next-auth][error][oauth_callback_error]
https://next-auth.js.org/errors#oauth_callback_error { statusCode: 403, data: '' }

有没有我缺少的配置?

4

0 回答 0