如何解决使用自定义Okta提供程序的nextauth
默认情况下,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的反馈,那就太好了!)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。