File size: 1,142 Bytes
db242f8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import * as Joi from 'joi';

const email = Joi.string().email();
const phone = Joi.string().pattern(/^[0-9]{11}$/);
export const passwordSchema = Joi.string().min(8).max(20).required();

export const bindPasswordSchema = Joi.object({
  username: Joi.string().min(2).max(12).optional(),
  password: passwordSchema.required(),
});

export const identitySchema = Joi.object({
  identity: Joi.alternatives().try(email, phone).required(),
});

export const validateCodeSchema = Joi.object({
  identity: Joi.alternatives().try(email, phone).required(),
  code: Joi.string()
    .pattern(/^[0-9]{6}$/)
    .required(),
});

export const forgetPasswordSchema = Joi.object({
  identity: Joi.alternatives().try(email, phone).required(),
  code: Joi.string()
    .pattern(/^[0-9]{6}$/)
    .required(),
  newPassword: passwordSchema.required(),
});

export const withPasswordSchema = Joi.object({
  identity: Joi.alternatives().try(email, phone).required(),
  password: passwordSchema.required(),
});

export const bindIdentitySchema = Joi.object({
  identity: Joi.alternatives().try(email, phone).required(),
  password: passwordSchema.optional(),
});