Appwrite supports phone authentication, which allows users to create accounts and log in using SMS messages. Appwrite requires an SMS provider to be set up before using Phone authentication.
Setting up Appwrite Messaging?
This page describes how to setup messaging for your self-hosted Appwrite instance to send one-time passwords during phone login.
If you are looking to send custom messages for promotions, reminders, and other purposes, view the documentation for Appwrite Messaging documentation.
SMS providers
Appwrite supports a growing list of SMS providers that you can choose from. Choose one from the list below and set up an account.
SMS provider | Create account | Get credentials | |
Twilio | Website | Documentation | |
Textmagic | Website | Documentation | |
Telesign | Website | Documentation | |
MSG91 | Website | Documentation | |
Vonage | Website | Documentation |
Environment variables
You will need to configure these environment variables and restart your Appwrite containers before you can use phone authentication.
URL encode
Ensure the values you insert in the _APP_SMS_PROVIDER placeholders are URL encoded if they contain any non-alphanumeric characters.
Provider | _APP_SMS_PROVIDER | _APP_SMS_FROM |
Twilio | sms://[ACCOUNT SID]:[AUTH TOKEN]@twilio | [TWILIO PHONE NUMBER] |
Textmagic | sms://[USERNAME]:[API KEY]@text-magic | [PHONE NUMBER OR SENDER ID] |
TeleSign | sms://[CUSTOMER ID]:[API KEY]@telesign | [TELESIGN PHONE NUMBER] |
MSG91 | sms://[SENDER ID]:[AUTH KEY]@msg91 | [FLOW ID] |
Vonage | sms://[API KEY]:[API SECRET]@vonage | [PHONE NUMBER OR BRAND NAME] |
Applying changes
After editing your docker-compose.yml or .env files, you will need to recreate your Appwrite stack by running the following compose command in your terminal.
docker compose up -d
You can verify if the changes have been successfully applied by running this command:
docker compose exec appwrite vars