繁體中文(香港)
  • 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 提供者" 的更改。在官方文檔中,它提到 "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 快速入門指南