简体中文
  • 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 引入了几个重大变化,主要的变化是对 "OIDC/OAuth 提供商" 的影响。在官方文档中指出,“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,按照 正式迁移指南 更新包并确保你的应用按预期工作。确保还参考 NextAuth 快速入门指南