繁體中文(台灣)
  • 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 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,按照 官方遷移指南 更新套件,並確保你的應用程式按預期工作。確保你也參考 NextAuth 快速入門指南