使用自定义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的反馈,那就太好了!)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...