1

next-auth npm 包默认使用标准 Okta 域授权服务器,形式为https://${yourOktaDomain}/oauth2. 我必须连接到自定义 Okta 授权服务器,形式为:https://${yourOktaDomain}/oauth2/${authServerId}. 问题是:如何配置 nextauth 以识别 Okta 授权服务器我需要自定义服务器吗?如果没有此信息,NextAuth 不会形成正确的 URI。我在 NextAuth 站点1上找不到配置选项

4

2 回答 2

2

您可以通过在使用提供程序时指定它们来覆盖 NextAuth.js 提供程序的任何设置,因为“提供程序”实际上只是 JSON 对象。

例如,您可以添加这样的authorizationUrl属性:

import Providers from `next-auth/providers`
/* ... */
providers: [
  Providers.Okta({
    clientId: process.env.OKTA_CLIENT_ID,
    clientSecret: process.env.OKTA_CLIENT_SECRET,
    domain: process.env.OKTA_DOMAIN,
    authorizationUrl: `https://${yourOktaDomain}/oauth2/${authServerId}?response_type=code`
  })
}
/* ... */

Okta 的默认提供程序配置选项在这里: https ://github.com/nextauthjs/next-auth/blob/main/src/providers/okta.js

实际上有一个正在运行的拉取请求,它应该开箱即用地解决这个问题。我认为它具有您需要的更改,因此可能值得检查其中的更改并在您的应用程序中指定。

(如果这些选项对您有用,如果您可以对该 PR 留下反馈,那就太好了!)

于 2020-10-30T14:02:56.820 回答
0

使用 Next-Auth v4 beta 可以解决与此类似的一些问题。https://github.com/nextauthjs/next-auth/tree/beta

于 2021-10-21T18:51:14.103 回答