#atom

Passwordless login through email-based verification

Core Idea: Magic Link Authentication is a passwordless authentication method where users receive a unique, time-limited URL via email that automatically logs them in when clicked, eliminating the need to remember or input passwords.

Key Elements

// pages/api/auth/[...nextauth].js
import NextAuth from "next-auth";
import EmailProvider from "next-auth/providers/email";
import { MongoDBAdapter } from "@next-auth/mongodb-adapter";
import clientPromise from "../../../lib/mongodb";

export default NextAuth({
  providers: [
    EmailProvider({
      server: process.env.EMAIL_SERVER,
      from: process.env.EMAIL_FROM,
      maxAge: 10 * 60, // Magic links valid for 10 minutes
    }),
  ],
  adapter: MongoDBAdapter(clientPromise),
  pages: {
    signIn: '/auth/signin',
    verifyRequest: '/auth/verify-request',
  },
  callbacks: {
    async session({ session, user }) {
      session.user.id = user.id;
      return session;
    }
  }
});

Additional Connections

References

  1. OWASP Authentication Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
  2. Auth.js Documentation: https://authjs.dev/

#authentication #passwordless #security


Connections:


Sources: