关于 auth0-migration
面向将现有用户和身份验证流程迁移到 Auth0 的团队,提供迁移指导。内容涵盖批量、渐进和混合迁移,以及用户导入、应用代码更新和 API JWT 验证。
主要功能
- 01批量、渐进和混合迁移策略
- 02识别现有身份验证
- 03用户导出与导入指导
- 04前后端代码迁移参考
- 05API JWT 验证更新指导
适用场景
- 01将 Firebase 或 Cognito 用户迁至 Auth0
- 02分阶段迁移活跃用户
- 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, onAuthStateChanged | Firebase Auth |
useUser, useSession, isSignedIn | 现有身份验证钩子 |
passport.authenticate, LocalStrategy | Passport.js |
authorize, getAccessToken, oauth | OAuth/OIDC |
JWT, jwt.verify, jsonwebtoken | 基于令牌的身份验证 |
/api/auth/, /login, /callback | 身份验证路由 |
如果检测到现有身份验证,请询问:
我检测到你的项目中已有身份验证。你要:
- 迁移到 Auth0(替换现有身份验证)
- 在现有身份验证之外添加 Auth0(暂时同时保留两者)
- 从头开始(移除旧身份验证,配置全新的 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