01/10/2018, 12:15

Node js thiết lập từ chối truy cập

Để từ chối truy cập trong node js mình làm thế này:


    if(co_quyen==0){
        if(req.method=='POST'){
            return res.json({msg:'access_deny'})
        }
        return res.redirect('/login'); 
    }

Còn cách nào khác từ chối truy cập cho post không các bạn.?

Có người lại viết thế này, không biết có gì khác nhau không?


            //return res.json({msg:'access_deny'})
            return res.status(201).send({message: "access_deny"});

Zhang Jike viết 14:19 ngày 01/10/2018

Đơn giản là bạn tạo 1 middleware để check thôi. bạn làm thế là được rồi nhưng để check multi routes bạn cần sử dụng middleware. Vd bạn muốn 1 trang “/manage” chỉ có những người đã login có thể vào được và trang “/admin” chỉ có admin vào được. Còn k cho post thì bạn k viết hàm xử lý cho post là được.

const authenticate = (req, res, next) => {
  // check login
  if (isLogon) {
    req.user = userFromDatabase
    return next()
  }

  return res.json({ success: false, message: “access denied” })
}

const authorize = role => (req, res, next) => {
  if (req.user.role === role) return next()
  return res.json({ success: false, message: “access denied” })
}

app.get(“/manage”, authenticate, (req, res) => {
  res.render(“/manage”)
})

app.get(“/admin”, authenticate, authorize(“admin”), (req, res) => {
  res.render(“/admin”)
})

Bài liên quan
0