Files
mnote/wolai-frontend/convex/auth.ts
T
2026-01-18 05:13:53 +08:00

33 lines
1009 B
TypeScript

import { Password } from "@convex-dev/auth/providers/Password";
import { convexAuth } from "@convex-dev/auth/server";
/**
* Convex Auth 配置
*
* 配置密码认证方式,支持用户通过邮箱和密码注册/登录。
*/
export const { auth, signIn, signOut, store, isAuthenticated } = convexAuth({
providers: [
Password({
/**
* 密码要求验证
*/
validatePasswordRequirements: (password: string) => {
if (password.length < 8) {
throw new Error("密码至少需要 8 个字符");
}
},
/**
* 用户资料配置
*/
profile(params, _ctx) {
const email = typeof params.email === "string" ? params.email : String(params.email ?? "");
const name = typeof params.name === "string" ? params.name : "";
// 说明:Convex 的 Value 类型不允许 undefined;这里统一给 name 一个字符串占位。
return { email, name: name.trim() ? name : "" };
},
}),
],
});