前端字段参数校验
class checking {
constructor (ctx, ...obj) {
this.ctx = ctx
this.obj = obj
console.log(obj)
}
// 校验前端传来的值为undefined
Errunder () {
let bvc = this.obj.indexOf(undefined)
if (bvc !== -1) {
throw new result('参数填写错误', 400)
}
}
// 校验前端传来的值
// field:要校验的字段
// msg:报错信息
// num:下标
ValidField (field, msg, num) {
let reg = {
// 校验手机号码格式
'phone': /^1[3456789]\d{9}$/,
// 密码校验:6-20位数字和字母结合
'password': /^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,20}$/
}
if(!reg[field].test(this.obj[num])){
throw new result(msg,202)
}
}
}
注册商家账号
思路:
使用查询语句向数据库查询手机号码之前是否已经注册过
已经注册过:返回响应结果“已经注册过了”
还没有注册过:根据注册时间生成
uid
,使用JSON.stringify()
格式化生成新纪录,向数据库执行增加记录操作
生成 token 令牌
1.什么是Token?
在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般我们所说的的token大多是指用于身份验证的token
2.为什么使用token?
我们需要每次都知道当前请求的人是谁,但是又不想每次都让他提交用户名和密码,这时就需要有一个等同于用户名密码也能够标识用户身份的东西,即—token.
3.基于Token的身份验证方法
客户端使用用户名和密码请求登录
服务端收到请求,验证登录是否成功
验证成功后,服务端会返回一个Token给客户端,反之,返回身份验证失败的信息
客户端收到Token后把Token用一种方式存储起来,如( cookie / localstorage / sessionstorage / 其他 )
客户端每次发起请求时都会将Token发给服务端
服务端收到请求后,验证Token的合法性,合法就返回客户端所需数据,反之,返回验证失败的信息
const jwt = require('jsonwebtoken')
const security = {
secretKey: 'abcdefg',
expiresIn: 60*60*24*3
}
function gentoken (uid, scope = 2) {
const {secretKey, expiresIn} = security
const token = jwt.sign({uid, scope}, secretKey, {expiresIn})
return token
}
module.exports = {gentoken}