Русский
  • js
  • next
  • next-auth
  • auth.js

Миграция с NextAuth.js v4 на Auth.js v5

Руководство по миграции интеграции Logto с NextAuth.js v4 на v5.

Sijie
Sijie
Developer

Версия NextAuth.js 5 — это капитальная переработка пакета next-auth, которая вносит изменения, нарушающие обратную совместимость и влияющие на различные интеграции, включая Logto. Это руководство проведет вас через процесс миграции вашей интеграции Logto с NextAuth.js v4 на Auth.js v5.

Мы недавно обновили наш руководство по быстрому старту NextAuth. Ознакомьтесь с ним!

Понимание изменений

Auth.js v5

NextAuth.js v5 вводит несколько изменений, нарушающих совместимость, основное изменение, влияющее на способ интеграции Logto с вашим приложением, — это изменение в "Поставщики OIDC/OAuth". В официальной документации указано, что "Auth.js теперь строится на основе @auth/core с более строгим соблюдением спецификаций OAuth/OIDC, что может нарушить работу некоторых существующих OAuth-поставщиков", для пользователей Logto это означает, что вам нужно обновить конфигурацию поставщика.

Для получения дополнительной информации об изменениях вы можете обратиться к официальному руководству по миграции.

Конфигурация поставщика Logto

Конфигурация поставщика Logto была обновлена:

  • Тип изменен с oauth на oidc.
  • Поле wellKnown удалено, и вам нужно предоставить поле issuer.
  • Нет необходимости указывать алгоритм подписи id_token, теперь поддерживается ES384, и он будет автоматически определен.

Пошаговое руководство по миграции

Обновите конфигурацию поставщика в вашем файле pages/api/auth/[...nextauth].js с новым шаблоном конфигурации:

Шаг 1: Измените тип поставщика

Измените тип поставщика с oauth на oidc.

Шаг 2: Добавьте поле издателя

Добавьте поле issuer в конфигурацию поставщика. Вы можете получить значение издателя на странице сведений о приложении Logto, в поле "Issuer endpoint". Оно должно выглядеть как https://xxxx.logto.app/oidc, если вы используете облачный сервис Logto.

Затем вы можете удалить поле wellKnown.

Шаг 3: Удалите алгоритм подписи id_token_signed_response_alg

Теперь вам не нужно указывать алгоритм подписи id_token_signed_response_alg в конфигурации поставщика. Теперь он поддерживает ES384, и он будет автоматически определен.

Обновите проект

После обновления конфигурации поставщика вам нужно обновить пакет next-auth до v5, следуйте официальному руководству по миграции, чтобы обновить пакет и убедиться, что ваше приложение работает как ожидается. Убедитесь также, что вы ссылаетесь на руководство по быстрому старту NextAuth.