进行更新删除资源操作时,一般是在中间件查一次数据库判断当前用户是否该资源的拥有者吗?
发布于 6 年前 作者 imdoge 2390 次浏览 来自 问答

请问进行更新删除资源操作时,一般是在中间件查一次数据库判断当前用户是否该资源的拥有者吗? 还是如何设计比较优雅 为何我看论坛的开源代码nodeclub,发现进行更新操作时,auth中间件这样写的:

// 非登录用户直接屏蔽
var auth = function (req, res, next) {
  var ep = new eventproxy();
  ep.fail(next);

  var accessToken = String(req.body.accesstoken || req.query.accesstoken || '');
  accessToken = validator.trim(accessToken);

  UserModel.findOne({accessToken: accessToken}, ep.done(function (user) {
    if (!user) {
      res.status(401);
      return res.send({success: false, error_msg: '错误的accessToken'});
    }
    if (user.is_block) {
      res.status(403);
      return res.send({success: false, error_msg: '您的账户被禁用'});
    }
    req.user = user;
    next();
  }));

};

exports.auth = auth;

都不用检测当前用户是否该资源的拥有者的吗?

回到顶部