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