Next Auth V5- Advanced Guide (2024)

Zod数据验证

  • Zod 是一个 TypeScript-first 的 数据验证库,它的主要作用是通过简洁且强类型的 API 来验证和解析数据。它可以帮助你确保输入的数据符合预期的类型和结构,通常用于处理表单数据、API 请求的输入验证等场景。

  • (example)

    1
    2
    3
    4
    5
    6
    7
    8
    import * as z from 'zod';

    export const LoginSchema = z.object({
    email: z.string().email({
    message: "Email is required" //错误message
    }),
    password: z.string()
    });
  • 验证数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    tsconst data = {
    email: "example@example.com",
    password: "password123"
    };

    try {
    LoginSchema.parse(data); // 如果验证成功,返回数据;如果验证失败,抛出错误
    } catch (e) {
    console.log(e.errors); // 如果验证失败,打印错误信息
    }
  • 使用 safeParse 方法safeParse 方法返回一个包含成功或失败的解析结果对象,而不是直接抛出异常。这对于处理验证错误非常有用:

    1
    2
    3
    4
    5
    6
    7
    const result = LoginSchema.safeParse(data);

    if (result.success) {
    console.log("数据有效", result.data); // 数据有效
    } else {
    console.log("数据无效", result.error.errors); // 错误信息
    }

resend邮件发送

(PS:感觉登录注册还挺麻烦的,有点难梳理成线性的方案,这个文档暂时放弃吧)