Migrate to Kinde for user authentication
Get started
This guide covers the Auth0-specific steps for exporting your users and migrating to Kinde.
A key point to note: Kinde is OAuth2/OIDC compatible and issues similar tokens to Auth0. You only need to update the token claims when you migrate.
If you want to compare Kinde with Auth0, this page has some useful information.
identities array. Kinde imports these and lists them under the user’s profile. Users without an email can be imported and are identified by the connection attribute.Auth0 doesn’t have an export option by default, so you’ll need to install an extension.
The extension appears in your list of installed extensions. The first time you launch it, you’ll be asked to grant permission to access your Auth0 account.
Launch the extension by selecting Import / Export Extension.
Select Export.
Select Add default fields and add the identities field.
Change the Export Format to .json.
Select Export [X] Users. Once complete, select Download.
You will have an NDJSON (.json) file to import into Kinde
Use the user:existing_password_provided workflow trigger to validate credentials against Auth0 automatically on first login. No bulk export needed, no downtime.
The workflow calls Auth0’s Resource Owner Password Flow (POST /oauth/token) to verify the password before creating the user in Kinde.
If your app hosts its own login form (email + password), you can push users to Kinde directly without a Kinde workflow:
When a user signs in to your legacy app, check if they exist in Kinde: GET /api/v1/users?email={email}.
If not, validate their password against Auth0’s ROPC endpoint:
POST https://YOUR_DOMAIN/oauth/token{ "grant_type": "password", "username": "{user_email}", "password": "{user_password}", "audience": "{your_api_identifier}", "client_id": "{client_id}", "client_secret": "{client_secret}"}A 200 OK response confirms valid credentials. Create the user in Kinde and set their password.
On next login, route the user to Kinde’s hosted login.
For the Kinde API steps, see Create users with the API.
Export users and passwords from Auth0, import into Kinde, then switch. Follow the steps below:
In Kinde, go to Users, then select Import users.
Select Auth0.
Choose Import users only (import users first, then passwords separately) or Import passwords only (if users are already imported).
Follow the on-screen prompts to upload the file.
Review any import errors afterwards. Most can be fixed by editing the file and re-importing.
For full import details, see Bulk import users.
To handle new registrations or password changes during the migration window:
Kinde supports migrating these authentication methods from Auth0: usernames, email, phone, Google, Apple, Microsoft, Facebook, GitHub, Twitch, Bitbucket. Contact support if you need to migrate another type.
Auth methods are shown in the connection attribute of the identities array:
Username-Password-Authenticationemailsmsgoogle-oauth2githubtwitchfacebookbitbucketwindowsliveImport objects via the Kinde Management API, or add them in the Kinde dashboard.
Some Auth0 plans don’t allow password exports, or the 2-week wait isn’t practical. If that’s the case, import users without passwords — Kinde will ask them to set a new password on first sign-in. Alternatively, use drip-feed migration to avoid the export entirely.
If you need help with your migration, contact Kinde support.