繁體中文(香港)
  • js
  • next
  • next-auth
  • auth.js

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

從 NextAuth.js v4 遷移到 v5 的 Logto 集成指南。

Sijie
Sijie
Developer

NextAuth.js 第五版是 next-auth 套件的一次重大重寫,帶來了一些影響多個集成(包括 Logto)的破壞性更新。本指南將帶你了解如何將 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 文件中使用新的配置模板更新提供者配置:

第一步:更改提供者類型

將提供者類型從 oauth 更改為 oidc

第二步:添加發行者欄位

在提供者配置中添加 issuer 欄位。你可以從 Logto 應用程式詳細頁中獲得發行者值,在 "Issuer endpoint" 欄位中。如果你使用 Logto 雲服務,它應該看起來像 https://xxxx.logto.app/oidc

然後你可以移除 wellKnown 欄位。

第三步:刪除 id_token_signed_response_alg 簽名算法

你不再需要在提供者配置中指定 id_token_signed_response_alg 簽名算法。現在支援 ES384 並將自動檢測。

更新專案

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