Skip to main content
Version: v4

Email

How to

The Email provider sends "magic links" via email that the user can click on to sign in. You have likely seen them before if you have used software like Slack.

Adding support for signing in via email in addition to one or more OAuth services provides a way for users to sign in if they lose access to their OAuth account (e.g. if it is locked or deleted).

Configuration is similar to other providers, but the options are different:

pages/api/auth/[...nextauth].js
import EmailProvider from "next-auth/providers/email"
...
providers: [
EmailProvider({
server: process.env.EMAIL_SERVER,
from: process.env.EMAIL_FROM,
// maxAge: 24 * 60 * 60, // How long email links are valid for (default 24h)
}),
],
...

See the Email provider documentation for more information on how to configure email sign in.

note

The email provider requires a database, it cannot be used without one.

Options

NameDescriptionTypeRequired
idUnique ID for the providerstringYes
nameDescriptive name for the providerstringYes
typeType of provider, in this case email"email"Yes
serverPath or object pointing to the email serverstring or ObjectYes
sendVerificationRequestCallback to execute when a verification request is sent(params) => Promise<undefined>Yes
fromThe email address from which emails are sent, default: "no-reply@example.com"stringNo
maxAgeHow long until the e-mail can be used to log the user in seconds. Defaults to 1 daynumberNo