问题描述
默认情况下,next-auth npm软件包使用标准Okta域授权服务器,格式为https://${yourOktaDomain}/oauth2.
,我必须连接到自定义Okta授权服务器,格式为:https://${yourOktaDomain}/oauth2/${authServerId}.
,问题是:如何配置nextauth来识别我需要的Okta授权服务器是 Custom 服务器?没有此信息,NextAuth将无法形成正确的URI。我在NextAuth网站1
解决方法
您可以在使用提供者时通过指定它们来覆盖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
实际上有一个Pull Request for this in flight应该可以解决这个问题。我认为它具有您需要的更改,因此可能值得检查一下其中的更改并在您的应用程序中进行指定。
(如果这些选项对您有用,请留下您对该PR的反馈,那就太好了!)