auth0-migration
Use when migrating from existing auth providers (Firebase, Cognito, Supabase, custom auth) to Auth0 - covers bulk user import, gradual migration strategies, code migration patterns, and JWT validation updates
Best use case
auth0-migration is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when migrating from existing auth providers (Firebase, Cognito, Supabase, custom auth) to Auth0 - covers bulk user import, gradual migration strategies, code migration patterns, and JWT validation updates
Teams using auth0-migration should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/auth0-migration/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How auth0-migration Compares
| Feature / Agent | auth0-migration | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when migrating from existing auth providers (Firebase, Cognito, Supabase, custom auth) to Auth0 - covers bulk user import, gradual migration strategies, code migration patterns, and JWT validation updates
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Auth0 Migration Guide
Migrate users and authentication flows from existing auth providers to Auth0.
---
## Overview
### When to Use This Skill
- Migrating from another auth provider to Auth0
- Bulk importing existing users
- Gradually transitioning active user bases
- Updating JWT validation in APIs
## When NOT to Use
- **Starting fresh with Auth0** - Use `auth0-quickstart` for new projects without existing users
- **Already using Auth0** - This is for migrating TO Auth0, not between Auth0 tenants
- **Only adding MFA or features** - Use feature-specific skills if just adding capabilities
### Migration Approaches
- **Bulk Migration:** One-time user import (recommended for small/inactive bases)
- **Gradual Migration:** Lazy migration over time (recommended for large active bases)
- **Hybrid:** Import inactive users, lazy-migrate active users
---
## Step 0: Detect Existing Auth Provider
**Check if the project already has authentication:**
Search for common auth-related patterns in the codebase:
| Pattern | Indicates |
|---------|-----------|
| `signInWithEmailAndPassword`, `onAuthStateChanged` | Firebase Auth |
| `useUser`, `useSession`, `isSignedIn` | Existing auth hooks |
| `passport.authenticate`, `LocalStrategy` | Passport.js |
| `authorize`, `getAccessToken`, `oauth` | OAuth/OIDC |
| `JWT`, `jwt.verify`, `jsonwebtoken` | Token-based auth |
| `/api/auth/`, `/login`, `/callback` | Auth routes |
**If existing auth detected, ask:**
> I detected existing authentication in your project. Are you:
> 1. **Migrating to Auth0** (replace existing auth)
> 2. **Adding Auth0 alongside** (keep both temporarily)
> 3. **Starting fresh** (remove old auth, new Auth0 setup)
---
## Migration Workflow
### Step 1: Export Existing Users
Export users from your current provider. See [User Import Guide](references/user-import.md) for detailed instructions:
- [Exporting from Firebase](references/user-import.md#firebase)
- [Exporting from AWS Cognito](references/user-import.md#aws-cognito)
- [Exporting from Supabase](references/user-import.md#supabase)
- [Exporting from Custom Database](references/user-import.md#custom-database)
**Required data per user:**
- Email address
- Email verified status
- Password hash (if available)
- User metadata/profile data
- Creation timestamp
---
### Step 2: Import Users to Auth0
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:**
- [User JSON Format](references/user-import.md#auth0-user-import-format)
- [Password Hash Algorithms](references/user-import.md#password-hash-algorithms)
- [Import Methods](references/user-import.md#importing-to-auth0)
- [Monitoring Import Progress](references/user-import.md#monitoring-import-progress)
- [Common Import Errors](references/user-import.md#common-import-errors)
---
### Step 3: Migrate Application Code
Update your application code to use Auth0 SDKs.
**See [Code Migration Patterns](references/code-patterns.md) for detailed before/after examples:**
**Frontend:**
- [React Migration](references/code-patterns.md#react-migration)
- [Next.js Migration](references/code-patterns.md#nextjs-migration)
- [Vue.js Migration](references/code-patterns.md#vuejs-migration)
- [Angular Migration](references/code-patterns.md#angular-migration)
- [React Native Migration](references/code-patterns.md#react-native-migration)
**Backend:**
- [Express.js Migration](references/code-patterns.md#expressjs-migration)
- [API JWT Validation](references/code-patterns.md#backend-api-jwt-validation)
**Provider-Specific:**
- [Firebase to Auth0](references/code-patterns.md#firebase-to-auth0)
- [Supabase to Auth0](references/code-patterns.md#supabase-to-auth0)
- [Clerk to Auth0](references/code-patterns.md#clerk-to-auth0)
**After migrating code, use framework-specific skills:**
- `auth0-react` for React applications
- `auth0-nextjs` for Next.js applications
- `auth0-vue` for Vue.js applications
- `auth0-angular` for Angular applications
- `auth0-express` for Express.js applications
- `auth0-react-native` for React Native/Expo applications
---
### Step 4: Update API JWT Validation
If your API validates JWTs, update to validate Auth0 tokens.
**Key differences:**
- **Algorithm:** HS256 (symmetric) → RS256 (asymmetric)
- **Issuer:** Custom → `https://YOUR_TENANT.auth0.com/`
- **JWKS URL:** `https://YOUR_TENANT.auth0.com/.well-known/jwks.json`
**See [JWT Validation Examples](references/code-patterns.md#backend-api-jwt-validation) for:**
- Node.js / Express implementation
- Python / Flask implementation
- Key differences and migration checklist
---
## Gradual Migration Strategy
For production applications with active users, use a phased approach:
### Phase 1: Parallel Auth
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();
};
```
### Phase 2: New Users on Auth0
- All new signups go to Auth0
- Existing users continue on legacy provider
- Migrate users on next login (lazy migration)
### Phase 3: Forced Migration
- Prompt remaining users to "update account"
- Send password reset emails via Auth0
- Set deadline for legacy system shutdown
### Phase 4: Cleanup
- Remove legacy auth code
- Archive user export for compliance
- Update documentation
---
## Common Migration Issues
| Issue | Solution |
|-------|----------|
| Password hashes incompatible | Use Auth0 custom DB connection with lazy migration |
| Social logins don't link | Configure same social connection, users auto-link by email |
| Custom claims missing | Add claims via Auth0 Actions |
| Token format different | Update API to validate RS256 JWTs with Auth0 issuer |
| Session persistence | Auth0 uses rotating refresh tokens; update token storage |
| Users must re-login | Expected for redirect-based auth; communicate to users |
---
## Reference Documentation
### User Import
Complete guide to exporting and importing users:
- [Exporting from Common Providers](references/user-import.md#exporting-users-from-common-providers)
- [User JSON Format](references/user-import.md#auth0-user-import-format)
- [Password Hash Algorithms](references/user-import.md#password-hash-algorithms)
- [Import Methods](references/user-import.md#importing-to-auth0)
- [Monitoring & Troubleshooting](references/user-import.md#monitoring-import-progress)
### Code Migration
Before/after examples for all major frameworks:
- [React Patterns](references/code-patterns.md#react-migration)
- [Next.js Patterns](references/code-patterns.md#nextjs-migration)
- [Express Patterns](references/code-patterns.md#expressjs-migration)
- [Vue.js Patterns](references/code-patterns.md#vuejs-migration)
- [Angular Patterns](references/code-patterns.md#angular-migration)
- [React Native Patterns](references/code-patterns.md#react-native-migration)
- [API JWT Validation](references/code-patterns.md#backend-api-jwt-validation)
---
## Related Skills
### Core Integration
- `auth0-quickstart` - Initial Auth0 setup after migration
### SDK Skills
- `auth0-react` - React SPA integration
- `auth0-nextjs` - Next.js integration
- `auth0-vue` - Vue.js integration
- `auth0-angular` - Angular integration
- `auth0-express` - Express.js integration
- `auth0-react-native` - React Native/Expo integration
---
## References
- [Auth0 User Migration Documentation](https://auth0.com/docs/manage-users/user-migration)
- [Bulk User Import](https://auth0.com/docs/manage-users/user-migration/bulk-user-imports)
- [Password Hash Algorithms](https://auth0.com/docs/manage-users/user-migration/bulk-user-imports#password-hashing-algorithms)
- [Management API - User Import](https://auth0.com/docs/api/management/v2/jobs/post-users-imports)Related Skills
db-migration
Supabase migration patterns, RLS audit, schema validation. Guides safe DDL operations.
auth0
Expert for Auth0 integration across Go backends and React frontends. Use when setting up OIDC authentication, validating JWTs in Go, or implementing Auth0 React SDK patterns.
auth0-automation
Automate Auth0 tasks via Rube MCP (Composio). Always search tools first for current schemas.
chat-migration-bridge-v45
Quantum-classical hybrid checkpoint система. Используй когда (1) нужны cutting-edge технологии (real quantum algorithms, transformers, GNN), (2) research/innovation проекты с advanced ML requirements, (3) готовность к pre-AGI capabilities (15 функций), (4) hardware доступен (GPU/TPU recommended). 115 функций (39% real implementations vs 12% simulated), 5 сек, 99.7/100. Bridging v4.0→v5.0 AGI. Для researchers и innovators.
angular-migration
Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.
database-migrations-migration-observability
Migration monitoring, CDC, and observability infrastructure
cloudflare-d1-migrations-and-production-seeding
Use this skill whenever the user wants to design, run, or refine Cloudflare D1 schema management, migrations, and data seeding for dev/staging/production environments, especially in conjunction with Hono/Workers apps.
awesome-copilot-root-arm-migration
Arm Cloud Migration Assistant accelerates moving x86 workloads to Arm infrastructure. It scans the repository for architecture assumptions, portability issues, container base image and dependency incompatibilities, and recommends Arm-optimized changes. It can drive multi-arch container builds, validate performance, and guide optimization, enabling smooth cross-platform deployment directly inside GitHub. Use when: the task directly matches arm migration responsibilities within plugin awesome-copilot-root. Do not use when: a more specific framework or task-focused skill is clearly a better match.
springboot-4-migration
Comprehensive guide for migrating Spring Boot applications from 3.x to 4.0, focusing on Gradle Kotlin DSL and version catalogs Triggers on: **/*.java, **/*.kt, **/build.gradle.kts, **/build.gradle, **/settings.gradle.kts, **/gradle/libs.versions.toml, **/*.properties, **/*.yml, **/*.yaml
rules-migration
MIGRATE CLAUDE.md into modular `.claude/rules/` directory structure following Claude Code's rules system. Converts monolithic CLAUDE.md into organized, path-specific rule files with glob patterns. Use when migrating to rules system, modularizing project instructions, splitting CLAUDE.md, organizing memory files. Triggers on "migrate claudemd to rules", "convert claude.md to rules", "modularize claude.md", "split claude.md into rules", "migrate to rules system".
framework-migration-legacy-modernize
Orchestrate a comprehensive legacy system modernization using the strangler fig pattern, enabling gradual replacement of outdated components while maintaining continuous business operations through ex
database-migrations-sql-migrations
SQL database migrations with zero-downtime strategies for PostgreSQL, MySQL, SQL Server Use when: the user asks to run the `sql-migrations` workflow and the task requires multi-step orchestration. Do not use when: the task is small, single-step, and can be completed directly without orchestration overhead.