• js
  • next
  • next-auth
  • auth.js

Migrera från NextAuth.js v4 till Auth.js v5

En guide för att migrera Logto-integrationen från NextAuth.js v4 till v5.

Sijie
Sijie
Developer

NextAuth.js version 5 är en omfattande omskrivning av next-auth-paketet, som medför brytande uppdateringar som påverkar olika integrationer, inklusive Logto. Denna guide tar dig genom processen att migrera din Logto-integrering från NextAuth.js v4 till Auth.js v5.

Förstå förändringarna

Auth.js v5

NextAuth.js v5 introducerar flera brytande ändringar, den främsta förändringen som påverkar hur du integrerar Logto med din applikation är förändringen av "OIDC/OAuth Providers". I den officiella dokumentationen står det "Auth.js bygger nu på @auth/core med striktare OAuth/OIDC-spec-kompatibilitet, vilket kan bryta vissa befintliga OAuth-leverantörer", för Logto-användare innebär detta att du behöver uppdatera leverantörskonfigurationen.

För mer information om ändringarna kan du hänvisa till den officiella migrationsguiden.

Logto-leverantörskonfiguration

Leverantörskonfigurationen för Logto har uppdaterats:

  • Typen har ändrats från oauth till oidc.
  • wellKnown-endpoint har tagits bort, och du behöver ange issuer-fältet istället.
  • Ingen anledning att specificera id_token-signeringsalgoritmen, den stöder nu ES384 och kommer att detekteras automatiskt.

Steg-för-steg-migrationsguide

Uppdatera leverantörskonfigurationen i din pages/api/auth/[...nextauth].js-fil med den nya konfigurationsmallen:

Steg 1: Ändra leverantörstypen

Ändra leverantörstypen från oauth till oidc.

Steg 2: Lägg till issuer-fältet

Lägg till issuer-fältet i leverantörskonfigurationen. Du kan få issuer-värdet från Logto Applikationsdetaljer-sidan, i fältet "Issuer endpoint". Det bör se ut som https://xxxx.logto.app/oidc om du använder Logto molntjänst.

Och sedan kan du ta bort wellKnown-fältet.

Steg 3: Ta bort id_token_signed_response_alg-signeringsalgoritmen

Du behöver inte längre specificera id_token_signed_response_alg-signeringsalgoritmen i leverantörskonfigurationen. Den stöder ES384 nu och kommer att detekteras automatiskt.

Uppdatera projektet

Efter att ha uppdaterat leverantörskonfigurationen behöver du uppdatera next-auth-paketet till v5, följ den officiella migrationsguiden för att uppdatera paketet och se till att din applikation fungerar som förväntat.