Migrate to Kinde for user authentication
Get started
This guide is designed to help you migrate from Auth0 to Kinde.
Switching between providers for any service can be daunting, and especially where user data is involved. We’ll walk you through the process or migrating, to take some of the pain away.
If you want to compare Kinde with Auth0, this page has some useful information.
A key point to note is that Kinde is OAuth2/OIDC compatible, issuing similar tokens to Auth0. You only need to update the token claims when you migrate.
If you haven’t already got a Kinde account, register for free here (no credit card required).
While there is parity in function for basic user data in Auth0 and Kinde, e.g. email, first name, last name, etc. Some other information objects are treated differently. Review the Migrating other objects topic below before you migrate.
Kinde supports your migration, however you want to do it. You can migrate:
Before you migrate users, we recommend you set up the authentication methods you want, in Kinde. You can replicate the auth methods you currently use with Auth0, or set up new methods for users to adopt when they next sign in, e.g. passwordless.
You might also want to set up roles in Kinde, before you import.
Auth0 does not allow you to export hashed passwords from your account yourself, it needs to be requested from Auth0 support.
I have a question regarding my Auth0 account and then pick the I would like to obtain an export of my password hashes option.It usually takes 1 or 2 weeks and then they send you an email with a .json file containing the hashed passwords.
🔒 During migration, passwords are never exposed in plain text. Neither Kinde, Auth0, nor you ever have access to passwords.
Some Auth0 plans don’t allow password exports, or you might not want to wait 2 weeks for the json file. If this is the case, import the user data you’re able to, and Kinde will ask users to set a new password the next time they sign in.
Auth0 doesn’t have an export option by default, so you’ll need to install an export extension.
You’ll now see it in your list of installed extensions. The first time you launch it, you’ll be asked to grant permission for the extension to access your Auth0 account.
Select Add default fields to add the majority of fields.
You’ll also want to add the following fields: pp_metadata, blocked, user_metadata, username, last_ip, last_login, logins_count, multifactor, name, phone_number, phone_verified.
ℹ️ The only mandatory information required for user import to Kinde is a user identifier, like an email or phone number. But including as much data as you can, makes for a more seamless transition to Kinde.
Change the Export Format to .csv.
When you’re ready, click Export [X] Users. (X is the number of users you’re exporting).
Once the export is complete, select Download to get the file containing your user’s information. This is the main file you’ll need to migrate your users; the other file is the password hashes.
Before you import users into Kinde, you might want set up any required configuration manually or using the Kinde management API. For example, set up auth methods, roles, etc. See Migrating other data.
Once the password hashes have been imported into Kinde, your users will be able to sign in to Kinde with their existing password.
ℹ️ Allowance for soft migration. After import, the first time a user signs in using Kinde, their hashed password record, etc., will be updated. So if you are changing between systems and you export or re-import users, we will not update that user’s data again.
If you have other important objects that need to be migrated, such as organizations or roles, you can import them in a similar manner to above, or via the Kinde management API.
Before you migrate, however, be aware that the functionality of these objects may differ between Auth0 and Kinde. Here’s some similarities and differences to note:
Roles and Permissions provide information about what your users can do in your applications. Kinde also has Roles and Permissions and they are assigned on a per user, per organization basis, meaning the same user can have different permissions in different organizations. For the Auth0 equivalent of user-level roles/permissions, use the default organization.We’ve tried to make onboarding to Kinde as easy as possible, because we know it’s a pain to break up with your old provider. We’re here to help and can assist with your migration.
Please reach out in the support channels of our Slack or Discord community, or email us at support@kinde.com.