Skip to main content

Email & SMS Providers

Configure how nauth-toolkit sends emails and SMS messages. Pick a provider for each channel and pass it to your auth configuration.

Email Providers

Install the Nodemailer-based email provider:

npm install @nauth-toolkit/email-nodemailer
config/auth.config.ts
import { NodemailerEmailProvider } from '@nauth-toolkit/email-nodemailer';

{
emailProvider: new NodemailerEmailProvider({
transport: {
host: 'smtp.example.com',
port: 587,
secure: false,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS,
},
},
defaults: {
from: '"My App" <noreply@example.com>',
},
}),
}

Console provider (development)

For local development, log emails to the console instead of sending them:

npm install @nauth-toolkit/email-console
config/auth.config.ts
import { ConsoleEmailProvider } from '@nauth-toolkit/email-console';

{
emailProvider: new ConsoleEmailProvider(),
}

SMS Providers

npm install @nauth-toolkit/sms-aws-sns
config/auth.config.ts
import { AWSSMSProvider } from '@nauth-toolkit/sms-aws-sns';

{
smsProvider: new AWSSMSProvider({
region: 'us-east-1',
originationNumber: process.env.AWS_SMS_ORIGINATION || '+12345678901',
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
}),
}

AWS SNS supports two API modes:

ModeConfigDescription
'sns' (default)apiMode: 'sns'Standard SNS Publish API
'end-user-messaging-sms'apiMode: 'end-user-messaging-sms'AWS End User Messaging SMS API (supports configuration sets)
new AWSSMSProvider({
region: 'us-east-1',
originationNumber: process.env.AWS_SMS_ORIGINATION,
apiMode: 'end-user-messaging-sms',
configurationSetName: 'my-config-set',
})

What's Next