- Sign-up emails a confirmation link (24h); unconfirmed accounts see a banner on the web with "send it again", and status in Settings. - Change email (needs the password): the new address gets a confirmation link and only replaces the old one once clicked; the old address gets a heads-up with a reset-password link. Pending changes can be cancelled. - Change password (needs the current one): signs out other sessions. - Password fields have Show/Hide on web and mobile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MzFywujuH9TiuXbr9vjoX8
This commit is contained in:
@@ -20,6 +20,18 @@ export const registerSchema = z.object({
|
||||
|
||||
export const forgotPasswordSchema = z.object({ email: emailSchema });
|
||||
|
||||
export const verifyEmailSchema = z.object({ token: z.string().min(20).max(200) });
|
||||
|
||||
export const changePasswordSchema = z.object({
|
||||
currentPassword: z.string().min(1).max(200),
|
||||
newPassword: newPasswordSchema,
|
||||
});
|
||||
|
||||
export const changeEmailSchema = z.object({
|
||||
email: emailSchema,
|
||||
password: z.string().min(1).max(200),
|
||||
});
|
||||
|
||||
export const resetPasswordSchema = z.object({
|
||||
token: z.string().min(20).max(200),
|
||||
password: newPasswordSchema,
|
||||
@@ -50,6 +62,8 @@ export const connectUsernameSchema = z.object({
|
||||
export type RegisterInput = z.infer<typeof registerSchema>;
|
||||
export type LoginInput = z.infer<typeof loginSchema>;
|
||||
export type ResetPasswordInput = z.infer<typeof resetPasswordSchema>;
|
||||
export type ChangePasswordInput = z.infer<typeof changePasswordSchema>;
|
||||
export type ChangeEmailInput = z.infer<typeof changeEmailSchema>;
|
||||
export type UpdateMeInput = z.infer<typeof updateMeSchema>;
|
||||
export type SetFeaturedInput = z.infer<typeof setFeaturedSchema>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user