mongoose实现权限查询控制

来源:互联网 发布:js时间倒计时代码 编辑:程序博客网 时间:2024/06/05 14:21
声明: 转载请注明出处

功能说明: 使用mongoose查询数据库是否有该条数据,当没有的时候,禁止用户访问页面,并将访问者信息加入无权限用户。当用户存在,判断用户是否有访问权限,有则通过,没有即禁止访问。

1. 导入schema

import User from './UserSchema';

2. 设置默认变量来控制权限,默认为无权限

let per = false;

3. 操作代码

function Authencation(req, res, next) {//在用户访问网站时,已获取到用户信息并保存在session中if (session.userinfo){//以用户邮箱为验证用户身份唯一标识,根据邮箱查询其权限   User.findOne({ email: session.userinfo.mail }, 'permission', (err, result) => { //permission为权限,其值为布尔型        if (result) {      per = result.permission;       } else {   //用户不存在,保存为无权限用户      const user = new User({        id: session.userinfo.userId,        name: session.userinfo.userName,        email: session.userinfo.mail,        permission: false,      });      user.save();    }    将per存储到cookie中,以便页面中能取到其值来决定页面的重定向    res.cookie('per', per);    next();  });}else{ redirect...  //即用户没有身份信息时的处理}

附:

1. 取cookie方法
function getCookie(name) {  const strCookie = document.cookie;  const arrCookie = strCookie.split('; ');  let returnValue;  for (let i = 0; i < arrCookie.length; i += 1) {    const arr = arrCookie[i].split('=');    if (arr[0] === name) {      returnValue = arr[1];    }  }  return returnValue;}