Email MFA Provider
Package: @nauth-toolkit/mfa-email
Type: MFA Provider
- npm
- Yarn
- pnpm
- Bun
npm install @nauth-toolkit/mfa-email
yarn add @nauth-toolkit/mfa-email
pnpm add @nauth-toolkit/mfa-email
bun add @nauth-toolkit/mfa-email
Exports
| Export | Type | Entry |
|---|---|---|
EmailMFAProviderService | Service | Default |
EmailMFAModule | NestJS Module | /nestjs |
Requirements
Requires an email provider configured:
@nauth-toolkit/email-nodemailer
Usage
- NestJS
- Express
- Fastify
import { EmailMFAModule } from '@nauth-toolkit/mfa-email/nestjs';
import { NodemailerEmailProvider } from '@nauth-toolkit/email-nodemailer';
@Module({
imports: [
AuthModule.forRoot({
mfa: {
enabled: true,
allowedMethods: [MFAMethod.EMAIL],
},
emailProvider: new NodemailerEmailProvider({ ... }),
}),
EmailMFAModule,
],
})
export class AppModule {}
import { NodemailerEmailProvider } from '@nauth-toolkit/email-nodemailer';
const nauth = await NAuth.create({
config: {
mfa: {
enabled: true,
allowedMethods: [MFAMethod.EMAIL],
},
emailProvider: new NodemailerEmailProvider({
transport: { host: 'smtp.example.com', port: 587, auth: { user, pass } },
}),
},
dataSource,
adapter: new ExpressAdapter(),
});
import { NodemailerEmailProvider } from '@nauth-toolkit/email-nodemailer';
const nauth = await NAuth.create({
config: {
mfa: {
enabled: true,
allowedMethods: [MFAMethod.EMAIL],
},
emailProvider: new NodemailerEmailProvider({
transport: { host: 'smtp.example.com', port: 587, auth: { user, pass } },
}),
},
dataSource,
adapter: new FastifyAdapter(),
});
Setup Flow
- User must have verified email
- Call
mfaService.setupDevice(userId, 'email') - Code sent to email
- User submits code to verify