56 results available
Sign in
Skills directory

auth0-migration

auth0

·

Last changed
Hardened

This skill has been hardened by Chainguard

Last changed

This version passed the hardening gate. Hardening applied 6 targeted changes and preserved all other text. Classified findings before hardening: 4. Classified findings closed: 0. Classified findings remaining: 4. Unclassified scanner findings remaining: 0. Review findings closed: 4. Review findings remaining: 11.


Open before hardening

4

Low
Open after hardening

4

Low

Expand
File
Group
Subtype
Severity
Status
references/user-import.md

Malicious Code & Command Execution

—

Low
Open
references/user-import.md

Supply Chain & Install-Time Trust

Install-time download and execute

Low
Open
references/code-patterns.md

Sensitive Data & Secret Exposure

Hardcoded secret

Low
Open
references/user-import.md

Sensitive Data & Secret Exposure

Hardcoded secret

Low
Open

4 findings


SKILL.md

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:

PatternIndicates

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:


Migration Workflow

Step 1: Export Existing Users

Export users from your current provider. See User Import Guide for detailed instructions:

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.

For detailed instructions:


Step 3: Migrate Application Code

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 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 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:

// 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
  • Update documentation

Common Migration Issues

IssueSolution

Password hashes incompatible

Use Auth0 custom DB connection with lazy migration

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:

Code Migration

Before/after examples for all major frameworks:


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

Install

Install with chainctl
chainctl skill install public/auth0/auth0-migration:latest
Get started with chainctl
View source

Harden your own skills

Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.

Provenance

Upstream sourcehttps://github.com/auth0/agent-skills
Upstream commitce813504a5f05f2c09fe9aa3a10ca6a0b574d875
OCI reference

skills.cgr.dev/public/github.com/auth0/plugins/auth0/skills/auth0-migration:latest

License

Apache-2.0

Files

HARDENING.md

LICENSE

SKILL.md

references/code-patterns.md

references/user-import.md


The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.