koa 項目實戰(十一)驗證登陸和註冊的 input

1.驗證註冊參數javascript

根目錄/validation/register.jsjava

const Validator = require('validator');
const isEmpty = require('./is-empty');

module.exports = function validateRegisterInput(data) {
  let errors = {};

  data.name = !isEmpty(data.name) ? data.name : '';
  data.email = !isEmpty(data.email) ? data.email : '';
  data.password = !isEmpty(data.password) ? data.password : '';
  data.password2 = !isEmpty(data.password2) ? data.password2 : '';

  if (!Validator.isLength(data.name, { min: 2, max: 30 })) {
    errors.name = '名字的長度不能小於2位且不能超過30位';
  }

  if (Validator.isEmpty(data.name)) {
    errors.name = '名字不能爲空';
  }

  if (!Validator.isEmail(data.email)) {
    errors.email = '郵箱不合法';
  }

  if (Validator.isEmpty(data.email)) {
    errors.email = '郵箱不能爲空';
  }

  if (Validator.isEmpty(data.password)) {
    errors.password = 'password不能爲空';
  }

  if (!Validator.isLength(data.password, { min: 6, max: 30 })) {
    errors.password = 'password的長度不能小於6位且不能超過30位';
  }

  if (Validator.isEmpty(data.password2)) {
    errors.password2 = 'password2不能爲空';
  }

  if (!Validator.equals(data.password, data.password2)) {
    errors.password2 = '兩次密碼不一致';
  }

  return {
    errors,
    isValid: isEmpty(errors)
  }
}

2.驗證登陸參數api

根目錄/validation/login.jsui

const Validator = require('validator');
const isEmpty = require('./is-empty');

module.exports = function validateLoginInput(data) {
  let errors = {};

  data.email = !isEmpty(data.email) ? data.email : '';
  data.password = !isEmpty(data.password) ? data.password : '';

  if (!Validator.isEmail(data.email)) {
    errors.email = '郵箱不合法';
  }

  if (Validator.isEmpty(data.email)) {
    errors.email = '郵箱不能爲空';
  }

  if (Validator.isEmpty(data.password)) {
    errors.password = 'password不能爲空';
  }

  if (!Validator.isLength(data.password, { min: 6, max: 30 })) {
    errors.password = 'password的長度不能小於6位且不能超過30位';
  }

  return {
    errors,
    isValid: isEmpty(errors)
  }
}

3.引用blog

根目錄/routes/api/users.js接口

// 引入 input 驗證密碼
const validateRegisterInput = require('../../validation/register');
const validateLoginInput = require('../../validation/login');
...

// 註冊接口
const { errors, isValid } = validateRegisterInput(ctx.request.body);

// 判斷是否驗證經過
if (!isValid) {
  ctx.status = 400;
  ctx.body = errors;
  return;
}

// 登陸接口
const { errors, isValid } = validateLoginInput(ctx.request.body);

// 判斷是否驗證經過
if (!isValid) {
  ctx.status = 400;
  ctx.body = errors;
  return;
}

.ip

相關文章
相關標籤/搜索