次のような場合に使用: Firebase、Cognito、Supabase、Clerk、またはカスタム認証など、別の認証サービスからAuth0へのユーザー移行または認証方式の切り替えを行うとき。大量のユーザー一括インポート、段階的な移行方法、JWT(トークン検証方式)の更新などに対応しています。ユーザーが「認証をAuth0に切り替えたい」または「ユーザーをAuth0に移行したい」と言った場合も使用します。
Use when migrating users or authentication from another provider (Firebase, Cognito, Supabase, Clerk, or custom auth) to Auth0. Covers bulk user import, gradual migration strategies, and updating JWT validation — use even if the user says "switch our auth to Auth0" or "move our users to Auth0".
既存の認証プロバイダーから Auth0 へのユーザーおよび認証フローの移行を行います。
auth0-quickstart を使用してくださいプロジェクトに既存の認証が実装されているか確認してください。
コードベース内で、認証に関連する一般的なパターンを検索します:
| パターン | 示すもの |
|---|---|
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 を新規導入する)
現在のプロバイダーからユーザーをエクスポートします。 詳細な手順は ユーザーインポートガイド を参照してください:
ユーザーごとに必要なデータ:
ダッシュボード、CLI、または Management API を使用してユーザーをインポートします。
クイックスタート:
# Auth0 CLI を使用する場合
auth0 api post "jobs/users-imports" \
--data "connection_id=con_ABC123" \
--data "users=@users.json"
詳細な手順については以下を参照してください:
Auth0 SDK を使用するようにアプリケーションコードを更新します。
移行前後の詳細なコード例は コード移行パターン を参照してください:
フロントエンド:
バックエンド:
プロバイダー別:
コード移行後は、フレームワーク別のスキルを使用してください:
auth0-reactauth0-nextjsauth0-vueauth0-angularauth0-expressauth0-react-nativeAPI で JWT を検証している場合は、Auth0 トークンを検証するように更新します。
主な変更点:
https://YOUR_TENANT.auth0.com/https://YOUR_TENANT.auth0.com/.well-known/jwks.json以下の実装例は JWT バリデーション例 を参照してください:
アクティブユーザーが存在する本番環境では、フェーズを分けた移行アプローチを使用してください:
Auth0 とレガシープロバイダーを同時にサポートします:
// 移行中は両プロバイダーをサポート
const getUser = async () => {
// まず Auth0 を試みる
const auth0User = await getAuth0User();
if (auth0User) return auth0User;
// レガシープロバイダーにフォールバック
return await getLegacyUser();
};
| 問題 | 解決策 |
|---|---|
| パスワードハッシュに互換性がない | Auth0 カスタム DB コネクションとレイジーマイグレーションを使用する |
| ソーシャルログインが紐付かない | 同じソーシャルコネクションを設定すると、メールアドレスで自動的にリンクされる |
| カスタムクレームが存在しない | Auth0 Actions を使用してクレームを追加する |
| トークン形式が異なる | Auth0 の Issuer を使用した RS256 JWT を検証するように API を更新する |
| セッションの永続性 | Auth0 はローテーティングリフレッシュトークンを使用するため、トークンストレージを更新する |
| ユーザーが再ログインを求められる | リダイレクトベース認証では想定される動作のため、ユーザーへの事前周知を行う |
ユーザーのエクスポートとインポートの完全ガイド:
主要フレームワーク別の移行前後のコード例:
auth0-quickstart — 移行後の Auth0 初期セットアップ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 インテグレーション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:
| 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:
- 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:
# 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:
// 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();
};
| 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 |
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原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。