用于从现有身份验证提供者(Firebase、Cognito、Supabase、Clerk、自定义身份验证)迁移或切换到 Auth0,涵盖批量用户导入、渐进式迁移等
Migrate users and authentication flows from existing auth providers to Auth0.
auth0-quickstart for new projects without existing usersCheck if the project already has authentication:
Search for common auth-related patterns in the codebase:
PatternIndicatessignInWithEmailAndPassword, onAuthStateChangedFirebase AuthuseUser, useSession, isSignedInExisting auth hookspassport.authenticate, LocalStrategyPassport.jsauthorize, getAccessToken, oauthOAuth/OIDCJWT, jwt.verify, jsonwebtokenToken-based auth/api/auth/, /login, /callbackAuth routes
If existing auth detected, ask:
I detected existing authentication in your project. Are you:
- Migrating to Auth0 (replace existing auth)
- Adding Auth0 alongside (keep both temporarily)
- Starting fresh (remove old auth, new Auth0 setup)
Export users from your current provider. See User Import Guide for detailed instructions:
Required data per user:
Import users via Dashboard, CLI, or Management API.
Quick start:
bash
# Via Auth0 CLI
auth0 api post "jobs/users-imports" \
--data "connection_id=con_ABC123" \
--data "users=@users.json"
For detailed instructions:
Update your application code to use Auth0 SDKs.
See Code Migration Patterns for detailed before/after examples:
Frontend:
Backend:
Provider-Specific:
After migrating code, use framework-specific skills:
auth0-react for React applicationsauth0-nextjs for Next.js applicationsauth0-vue for Vue.js applicationsauth0-angular for Angular applicationsauth0-express for Express.js applicationsauth0-react-native for React Native/Expo applicationsIf your API validates JWTs, update to validate Auth0 tokens.
Key differences:
https://YOUR_TENANT.auth0.com/https://YOUR_TENANT.auth0.com/.well-known/jwks.jsonSee JWT Validation Examples for:
For production applications with active users, use a phased approach:
Support both Auth0 and legacy provider simultaneously:
typescript
// 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();
};
IssueSolutionPassword hashes incompatibleUse Auth0 custom DB connection with lazy migrationSocial logins don't linkConfigure same social connection, users auto-link by emailCustom claims missingAdd claims via Auth0 ActionsToken format differentUpdate API to validate RS256 JWTs with Auth0 issuerSession persistenceAuth0 uses rotating refresh tokens; update token storageUsers must re-loginExpected for redirect-based auth; communicate to users
Complete guide to exporting and importing users:
Before/after examples for all major frameworks:
auth0-quickstart - Initial Auth0 setup after migrationauth0-react - React SPA integrationauth0-nextjs - Next.js integrationauth0-vue - Vue.js integrationauth0-angular - Angular integrationauth0-express - Express.js integrationauth0-react-native - React Native/Expo integration