mcpField
A
auth0-migration

auth0-migration

github.com/auth0安全55687 次安装1 天前更新
代码仓库

关于 auth0-migration

面向将现有用户和身份验证流程迁移到 Auth0 的团队,提供迁移指导。内容涵盖批量、渐进和混合迁移,以及用户导入、应用代码更新和 API JWT 验证。

主要功能

  1. 01批量、渐进和混合迁移策略
  2. 02识别现有身份验证
  3. 03用户导出与导入指导
  4. 04前后端代码迁移参考
  5. 05API JWT 验证更新指导

适用场景

  1. 01将 Firebase 或 Cognito 用户迁至 Auth0
  2. 02分阶段迁移活跃用户
  3. 03调整 API 以验证 Auth0 JWT

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/auth0/agent-skills --skill auth0-migration

安装后在 Claude Code 中输入/auth0-migration确认已加载。

附带文件references/code-patterns.mdreferences/user-import.md

详细介绍

Auth0 迁移指南

将用户和身份验证流程从现有身份验证提供商迁移到 Auth0。


概述

何时使用此技能
  • 从其他身份验证提供商迁移到 Auth0
  • 批量导入现有用户
  • 逐步迁移活跃用户群
  • 更新 API 中的 JWT 验证

何时不使用

  • 从头开始使用 Auth0——对于没有现有用户的新项目,请使用 auth0-quickstart
  • 已经在使用 Auth0——此指南用于迁移到 Auth0,而不是在 Auth0 租户之间迁移
  • 仅添加 MFA 或功能——如果只是添加功能,请使用对应的功能专用技能
迁移方式
  • **批量迁移:**一次性导入用户(推荐用于规模较小或不活跃的用户群)
  • **渐进式迁移:**随时间逐步进行惰性迁移(推荐用于规模较大且活跃的用户群)
  • **混合迁移:**导入不活跃用户,对活跃用户进行惰性迁移

步骤 0:检测现有身份验证提供商

检查项目是否已配置身份验证:

在代码库中搜索常见的身份验证相关模式:

模式表示
signInWithEmailAndPassword, onAuthStateChangedFirebase Auth
useUser, useSession, isSignedIn现有身份验证钩子
passport.authenticate, LocalStrategyPassport.js
authorize, getAccessToken, oauthOAuth/OIDC
JWT, jwt.verify, jsonwebtoken基于令牌的身份验证
/api/auth/, /login, /callback身份验证路由

如果检测到现有身份验证,请询问:

我检测到你的项目中已有身份验证。你要:

  1. 迁移到 Auth0(替换现有身份验证)
  2. 在现有身份验证之外添加 Auth0(暂时同时保留两者)
  3. 从头开始(移除旧身份验证,配置全新的 Auth0)

迁移工作流

步骤 1:导出现有用户

从当前提供商导出用户。详细说明请参阅用户导入指南:

每位用户的必需数据:

  • 电子邮件地址
  • 电子邮件验证状态
  • 密码哈希(如果可用)
  • 用户元数据/个人资料数据
  • 创建时间戳

步骤 2:将用户导入 Auth0

通过 Dashboard、CLI 或 Management API 导入用户。

快速入门:

# Via Auth0 CLI
auth0 api post "jobs/users-imports" \
  --data "connection_id=con_ABC123" \
  --data "[email protected]"

详细说明:


步骤 3:迁移应用代码

更新应用代码以使用 Auth0 SDK。

请参阅代码迁移模式,了解详细的迁移前后示例:

前端:

后端:

特定提供商迁移:

代码迁移完成后,请使用对应框架的技能:

  • React 应用使用 auth0-react
  • Next.js 应用使用 auth0-nextjs
  • Vue.js 应用使用 auth0-vue
  • Angular 应用使用 auth0-angular
  • Express.js 应用使用 auth0-express
  • React Native/Expo 应用使用 auth0-react-native

步骤 4:更新 API JWT 验证

如果 API 会验证 JWT,请更新验证逻辑,以验证 Auth0 令牌。

主要区别:

  • 算法: HS256(对称)→ RS256(非对称)
  • 颁发者: 自定义 → https://YOUR_TENANT.auth0.com/
  • JWKS URL: https://YOUR_TENANT.auth0.com/.well-known/jwks.json

请参阅 JWT 验证示例,了解:

  • Node.js / Express 实现
  • Python / Flask 实现
  • 主要区别和迁移检查清单

渐进式迁移策略

对于有活跃用户的生产应用,请采用分阶段方案:

阶段 1:并行认证

同时支持 Auth0 和旧提供商:

// Support both providers during migration
const getUser = async () => {
  // Try Auth0 first
  const auth0User = await getAuth0User();
  if (auth0User) return auth0User;

  // Fall back to legacy provider
  return await getLegacyUser();
};
阶段 2:新用户使用 Auth0
  • 所有新注册用户都使用 Auth0
  • 现有用户继续使用旧提供商
  • 在用户下次登录时迁移(延迟迁移)
阶段 3:强制迁移
  • 提示剩余用户“更新账户”
  • 通过 Auth0 发送密码重置邮件
  • 设置关闭旧系统的截止日期
阶段 4:清理
  • 移除旧版认证代码
  • 归档用户导出文件以满足合规要求
  • 更新文档

常见迁移问题

问题解决方案
密码哈希不兼容使用 Auth0 自定义数据库连接进行延迟迁移
社交登录未关联配置相同的社交连接,系统会按电子邮件自动关联用户
缺少自定义声明通过 Auth0 Actions 添加声明
令牌格式不同更新 API,使其使用 Auth0 颁发者验证 RS256 JWT
会话持久化Auth0 使用轮换刷新令牌;请更新令牌存储方式
用户必须重新登录基于重定向的认证中这是预期行为;请告知用户

参考文档

用户导入

导出和导入用户的完整指南:

代码迁移

所有主要框架的迁移前后示例:


相关技能

核心集成
  • auth0-quickstart - 迁移后初始设置 Auth0
SDK 技能
  • auth0-react - React SPA 集成
  • auth0-nextjs - Next.js 集成
  • auth0-vue - Vue.js 集成
  • auth0-angular - Angular 集成
  • auth0-express - Express.js 集成
  • auth0-react-native - React Native/Expo 集成

参考资料

评论

支持 Markdown