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

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

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

Sijie
Sijie
Developer

Stop wasting weeks on user auth
Launch secure apps faster with Logto. Integrate user auth in minutes, and focus on your core product.
Get started
Product screenshot

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" 字段獲取發行者值。如果你使用的是 Logto 雲服務,它應該看起來像 https://xxxx.logto.app/oidc

然後可以刪除 wellKnown 字段。

步驟 3:移除 id_token_signed_response_alg 簽名算法

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

更新工程

更新提供者配置後,你需要將 next-auth 套件更新到 v5,按照官方遷移指南更新套件並確保你的應用程式按預期運行。確保你也參考NextAuth 快速入門指南