nextauth с настраиваемым поставщиком Okta

Пакет next-auth npm по умолчанию использует стандартный сервер авторизации домена Okta, имеющий форму https://${yourOktaDomain}/oauth2.Мне нужно подключиться к настраиваемому серверу авторизации Okta в форме: https://${yourOktaDomain}/oauth2/${authServerId}.Вопрос: как мне настроить nextauth для распознавания того, что мне нужен сервер авторизации Okta, это настраиваемый сервер? Без этой информации NextAuth не формирует правильный URI. Я не смог найти вариант конфигурации на сайте NextAuth 1

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

На самом деле для этого есть Pull Request, который должен решить эту проблему из коробки. Я думаю, что в нем есть необходимые изменения, поэтому, возможно, стоит проверить, что в нем было изменено, и указать это в своем приложении.

(Было бы здорово, если бы вы могли оставить отзыв об этом PR, если эти варианты работают на вас!)

Некоторые проблемы, похожие на это, можно решить с помощью бета-версии Next-Auth v4. https://github.com/nextauthjs/next-auth/tree/beta

Другие вопросы по тегам