Email Verification

Email verification is enabled by default. Limen stores verification tokens and marks users as verified when a valid token is submitted.

Configure Delivery

Provide a callback that sends the verification token through your email system:

Email: limen.NewDefaultEmailConfig(
    limen.WithEmailVerification(
        limen.WithSendEmailVerificationMail(func(email string, token string) {
            sendVerificationEmail(email, token)
        }),
    ),
)

The default token expiration is 24 hours.

Email: limen.NewDefaultEmailConfig(
    limen.WithEmailVerification(
        limen.WithEmailVerificationExpiration(2*time.Hour),
    ),
)

Disable Verification

Email: limen.NewDefaultEmailConfig(
    limen.WithEmailVerification(
        limen.WithDisableEmailVerification(),
    ),
)

Custom Tokens

Override token generation when you need a signed token, short numeric code, or another delivery format:

Email: limen.NewDefaultEmailConfig(
    limen.WithEmailVerification(
        limen.WithEmailVerificationTokenGenerator(func(user *limen.User) (string, error) {
            return buildSignedVerificationToken(user)
        }),
    ),
)

Routes

When email verification is enabled, Limen registers:

POST /api/auth/verify-email
POST /api/auth/email-verifications

/email-verifications requires an authenticated session and creates a new token for the current user. /verify-email accepts the token and marks the email as verified.