Enable multi-factor authentication
Auth and access
You can allow users to use their phone as a primary method for authentication. This is a passwordless method, where the user is sent a verification code via SMS (or WhatsApp when configured). SMS can also be included as a secondary factor if you have multi-factor authentication set up.
By default, Kinde sends authentication SMS from its own shared service. You can use this in live environments on every plan. You do not need a third-party SMS provider to go live.
Free plans cannot connect their own SMS provider.
We recommend connecting your own SMS provider for best deliverability, and so you can control the sender ID or from number. Your own provider is uncapped and is not billed by Kinde. This is a recommendation, not a requirement.
Kinde supports:
Connecting your own SMS provider requires a Kinde paid plan. Free plans cannot connect Twilio or Sinch Engage.
If you want phone authentication SMS and MFA SMS to use the same provider:
You need a Twilio business account to send from your own numbers.
Phone authentication interactions are also known as A2P (Application to Person) messaging. Before you implement A2P, check if you need to register your business for 10DLC (10 Digit Long Code) support to be able to send messages, as this is required in some locations.
We also recommend you check Twilio’s guidelines for setting up messaging, and carefully follow procedures for registration, and SMS policies for all relevant countries.
You’ll need the following details that are in the dashboard of your Twilio account.
Refer to the Twilio documentation for assistance setting up.
In Kinde, go to Settings > Environment > Messaging > SMS.
Select Twilio in the Provider field.
Enter the Account SID and Auth token from your Twilio account.
In the SMS source field, select either Use messaging service or Use phone number. Verification codes will be sent from whichever you choose.
Note that the Twilio messaging service is more suitable for global applications as it detects where the sign in comes from and sends from an appropriate number.
Depending on your selection in the previous step, enter either the Messaging service SID or Twilio Phone number in the relevant field.
Select if you want to use a fallback service if the provider service is interrupted. Fallback uses Kinde’s default SMS service.
Select Save.
For security, Kinde never displays a stored auth token, so the Auth token field is blank when you return to the page. If Twilio is already your selected provider, leave it blank to keep the token you saved earlier. If you are switching to Twilio from another provider, you must enter the auth token.
You need a Sinch Engage account. See the Sinch Engage API for account and credential details.
Account region is where your Sinch Engage account is hosted — it selects the API endpoint Kinde calls. It is not a restriction on where you can send messages.
For security, Kinde never displays a stored API secret, so the API secret field is blank when you return to the page. If Sinch Engage is already your selected provider, leave API secret blank to keep the secret you saved earlier. If you are switching to Sinch Engage from another provider, you must enter the API secret.
After you set this up, you can use SMS for both phone authentication and SMS MFA.
In Kinde, go to Settings > Environment > Messaging > SMS.
Select the Default country that you want to show on the authentication screen when users sign in.
Select a Provider:
The fields below the selector change to match the provider you choose.
If you selected your own provider, enter the credentials and choose whether to use a fallback service if the provider is interrupted.
Select Save.
If MFA is required or optional for your users, you may want to use Kinde default SMS or your own SMS provider for SMS MFA.
You can’t customize the code message that user’s receive. We use a standard format as follows, to allow for easier translation.
Your verification code is [xxxxxx]When you configure phone authentication, you’ll see that a Connection ID is automatically assigned. If you’re building a custom authentication experience, you’ll need the ID to trigger the phone authentication workflow.