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