繁體中文(台灣)
  • js
  • next
  • next-auth
  • auth.js

從 NextAuth.js v4 遷移到 Auth.js v5

從 NextAuth.js v4 遷移 Logto 整合到 v5 的指南。

Sijie
Sijie
Developer

NextAuth.js 版本 5 是 next-auth 套件的一次重大重寫,帶來了影響多種整合的重大更新,包括 Logto。本指南將帶領你完成從 NextAuth.js v4 遷移到 Auth.js v5 的過程。

理解變更

Auth.js v5

NextAuth.js v5 引入了一些重大的變更,主要改變影響你如何將 Logto 整合進你的應用程式,尤其是在 "OIDC/OAuth Providers" 上的變更。在官方文件中,提到 "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 欄位

在提供者配置中添加 issuer 欄位。你可以從 Logto 應用程式詳情頁面中的 "Issuer endpoint" 欄位獲取 issuer 值。如果你使用 Logto 雲服務,應該如 https://xxxx.logto.app/oidc 所示。

然後可以移除 wellKnown 欄位。

步驟 3:移除 id_token_signed_response_alg 簽署算法

你無需在提供者配置中指定 id_token_signed_response_alg 簽署算法,現在支援 ES384 並將自動檢測。

更新專案

在更新提供者配置後,你需要將 next-auth 套件更新到 v5,按照官方遷移指南更新套件,並確保你的應用程式正常運作。