实战篇笔记 扫码点餐小程序云开发(五)


前端字段参数校验

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)
    }
  }
}

注册商家账号

思路:

  1. 使用查询语句向数据库查询手机号码之前是否已经注册过

  2. 已经注册过:返回响应结果“已经注册过了”

  3. 还没有注册过:根据注册时间生成 uid,使用 JSON.stringify() 格式化生成新纪录,向数据库执行增加记录操作

生成 token 令牌

1.什么是Token?
在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般我们所说的的token大多是指用于身份验证的token

2.为什么使用token?
我们需要每次都知道当前请求的人是谁,但是又不想每次都让他提交用户名和密码,这时就需要有一个等同于用户名密码也能够标识用户身份的东西,即—token.

3.基于Token的身份验证方法
客户端使用用户名和密码请求登录
服务端收到请求,验证登录是否成功
验证成功后,服务端会返回一个Token给客户端,反之,返回身份验证失败的信息
客户端收到Token后把Token用一种方式存储起来,如( cookie / localstorage / sessionstorage / 其他 )
客户端每次发起请求时都会将Token发给服务端
服务端收到请求后,验证Token的合法性,合法就返回客户端所需数据,反之,返回验证失败的信息

jsonwebtoken

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}

文章作者: April-cl
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 April-cl !
  目录