访问Express SessionRequest上的

编程入门 行业动态 更新时间:2024-10-12 16:22:15

访问<a href=https://www.elefans.com/category/jswz/34/1771445.html style=Express SessionRequest上的"/>

访问Express SessionRequest上的

| req.user.adminLevel <= 0 ) { logger.info("User has no Admin Level to access

    router.use('*', (req, res, next) => {
        if (!req.user || req.user.adminLevel <= 0 ) {
            logger.info("User has no Admin Level to access /admin")
            res.status(401).json({"errorCode" : "403", "error" : "Forbidden" })
        }
        else {
            logger.info("User has Admin Access, performing action")
            next()
        }
    })





    router.post('/new', controller.validadeUser(), controller.validate, controller.createUser);
    validate: (req, res, next) => {
        var errors = validationResult(req);
          if (!errors.isEmpty()) {
            return res.status(422).json({ errors: errors.array() });
          } else {
            next()
        }
    },
    validadeUser: () => { 
        return [
            check('username').not().isEmpty().withMessage('Name is Required'),
            check('password').not().isEmpty().withMessage('Password is Required'),
             check('adminLevel').custom(value => {
                if (value >  REQ.USER.LEVEL)
                    return Promise.reject("You can't add " + value + " if you are only" + REQ.USER.LEVEL)

            })]
    },

    createUser: (req, res, next) => {
        logger.info("Creating User", req.body)

        const user = new User(req.body.username, req.body.email, req.body.level, req.body.adminLevel, req.body.password)
        User.newUser(user)
            .then((results) => {
                res.status(200).json({"done" : true})
            }).catch(err => {
                logger.debug("Fail to create the user", err)
                res.status(500).json({"done" : false})
            })
     }

另外,req. user在之前的中间件中也被验证了 但我的问题与安全无关。

我的问题是,我怎样才能访问 会议 里面 控制器.validadeUser() ??

在validadeUser()中,我不能访问请求,也不能访问会话。但我想在那里进行验证,这可能吗,还是说我必须把验证分开,然后在validate方法中进行?

我试着把parms(req, res, next)添加到validadeUser中,但都是空的。

谢谢。

回答如下:

我找到了如何做到这一点。只是不得不添加自定义验证的请求。

check('adminLevel').custom((admLevel, { req }) => {

更多推荐

访问Express SessionRequest上的

本文发布于:2024-05-13 13:07:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759593.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Express   SessionRequest

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!