Sample Use Cases: Actions with Passwordless Authentication
Learn how to use Actions to customize passwordless authentication flows, including routing SMS and email OTPs through custom providers.
With Actions, you can extend passwordless connections by routing SMS and email OTP delivery through custom providers. Auth0 Actions give you control over which phone and email services handle your authentication messages.
Send passwordless email with a custom email provider
When a user authenticates through a passwordless email connection, Auth0 triggers the custom-email-provider Action to deliver the OTP. Use this Action to route messages through any email service.To configure the Action, navigate to Branding > Email Provider and toggle on Use my own email provider, then select the Custom Provider option. Add the default address from your custom provider in the From field. To learn more, read Configure an Email Provider with a Customized Action.In the Actions editor, use the following example.
You need to add your email provider’s service endpoint to the Actions code and API key in the Secrets tab of the Actions editor.
/** * Handler called when Auth0 needs to deliver a passwordless email OTP. * @param {Event} event - Details about the notification. * @param {CustomEmailProviderAPI} api - Methods for controlling notification behavior. */exports.onExecuteCustomEmailProvider = async (event, api) => { try { const response = await fetch('https://api.example.com/send-email', { method: 'POST', headers: { 'Authorization': `Bearer ${event.secrets.API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ to: event.notification.to, from: event.notification.from, subject: event.notification.subject, html: event.notification.html, text: event.notification.text, }), }); if (response.status >= 400) { api.notification.retry(`Request failed with status: ${response.status}`); return; } } catch (error) { api.notification.drop(`Unexpected error: ${error.message}`); }};
Send passwordless SMS with a custom phone provider
When a user authenticates through a passwordless SMS connection, Auth0 triggers the custom-phone-provider Action to deliver the OTP. Use this Action to route messages through any SMS provider.To configure the Action, navigate to Branding > Phone Provider. Toggle on Phone Message Provider and select the Custom option. Determine your delivery method to be Text, Voice, or both. To learn more, read Configure a Custom Phone Provider.In the Actions editor, use the following example.
You need to add your phone provider’s service endpoint to the Actions code and API key in the Secrets tab of the Actions editor.
/** * Handler called when Auth0 needs to deliver a passwordless SMS OTP. * @param {Event} event - Details about the notification. * @param {CustomPhoneProviderAPI} api - Methods for controlling notification behavior. */exports.onExecuteCustomPhoneProvider = async (event, api) => { const response = await fetch('https://api.example.com/messages', { method: 'POST', headers: { 'Authorization': `Bearer ${event.secrets.API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ to: event.notification.recipient, from: event.notification.from, body: event.notification.as_text, }), }); if (response.status >= 400) { api.notification.retry(`Request failed with status: ${response.status}`); }};