chore: 后端首次基线提交
运行必须源码:app/(controller/model/service/middleware/lib/utils/validate/router)、config/、database/(migrations/seeders/sql)、启动脚本、app/public/templates 模板。 已忽略运行非必须:node_modules/、logs/、run/、app/public 运行时上传数据、.env*、构建/缓存产物。
This commit is contained in:
86
app/validate/index.js
Normal file
86
app/validate/index.js
Normal file
@@ -0,0 +1,86 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* 统一输入校验规则集(基于 egg-validate / parameter)
|
||||
*
|
||||
* 对应各接口请求体的字段级校验。校验失败由控制器以
|
||||
* `ctx.helper.error(400, '参数校验失败:' + validateErr.errors[0].message)`
|
||||
* 统一封装为应用错误信封,与 admin 控制器既有模式保持一致。
|
||||
*
|
||||
* 规则说明:
|
||||
* - type: 'string' + required: true + allowEmpty: false:字段必填且不可为空串/纯空白
|
||||
* - trim: true:校验前去除首尾空白
|
||||
* - min: 6:字符串最小长度(用于密码强度底线)
|
||||
* - message:为每个校验项提供中文错误文案,parameter 会在 errors[] 中携带对应 message
|
||||
*/
|
||||
|
||||
const required = (msg) => ({
|
||||
type: 'string',
|
||||
required: true,
|
||||
allowEmpty: false,
|
||||
trim: true,
|
||||
message: { required: msg, empty: msg },
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
// 选手登录:手机号 + 密码
|
||||
login: {
|
||||
phone: required('请输入手机号'),
|
||||
password: required('请输入密码'),
|
||||
},
|
||||
|
||||
// 管理员登录:用户名 + 密码
|
||||
adminLogin: {
|
||||
username: required('请输入管理员用户名'),
|
||||
password: required('请输入密码'),
|
||||
},
|
||||
|
||||
// 发送短信验证码:身份证号 + 图形验证码
|
||||
sms: {
|
||||
phone: required('请输入身份证号'),
|
||||
captcha: required('请输入图形验证码'),
|
||||
},
|
||||
|
||||
// 账号激活:身份证号 + 手机号 + 短信验证码 + 密码(>=6)
|
||||
activate: {
|
||||
id_number: required('请输入身份证号'),
|
||||
phone: required('请输入手机号'),
|
||||
smsCode: required('请输入短信验证码'),
|
||||
password: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
allowEmpty: false,
|
||||
trim: true,
|
||||
min: 6,
|
||||
message: {
|
||||
required: '请输入密码',
|
||||
empty: '请输入密码',
|
||||
min: '密码长度不能少于 6 位',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 忘记密码-发码:身份证号 + 图形验证码
|
||||
forgotPassword: {
|
||||
id_number: required('请输入身份证号'),
|
||||
captcha: required('请输入图形验证码'),
|
||||
},
|
||||
|
||||
// 重置密码:身份证号 + 短信验证码 + 密码(>=6)
|
||||
resetPassword: {
|
||||
id_number: required('请输入身份证号'),
|
||||
smsCode: required('请输入短信验证码'),
|
||||
password: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
allowEmpty: false,
|
||||
trim: true,
|
||||
min: 6,
|
||||
message: {
|
||||
required: '请输入密码',
|
||||
empty: '请输入密码',
|
||||
min: '密码长度不能少于 6 位',
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user