簡體   English   中英

使用Passport,Node.js的用戶組

[英]User groups with Passport, Node.js

在這里尋找一些指針。

我想創建一個帶有登錄表單的頁面作為登錄頁面,登錄時將帶到您自己的儀表板。 但是,如果您以具有管理員權限的用戶身份登錄,他們將被帶到管理控制台。

做到這一點的最佳方法是什么? 只是有一些中間件檢查他們是否是管理員?

感謝邁爾斯

login.js文件:

var findUser = function(req, res, next) {
    var user = User.find({email:req.body.email},function(err,user){
     if (!user) {
        res.locals.error = 'No such account exists.'
        return res.render('frontend/login')
    }
    next()
    });
}

var authenticate = function(req, res, next) {

  passport.authenticate('local', function(err, user, info) {
            if (err || !user) {
                console.log('ATUH ERROR');
                            console.log(err , user,info)
                res.locals.error = 'Invalid login credentials provided.'
                return res.render('frontend/login')
            }
            req.logIn(user, function(err2) {
                if (err2) {
                    console.log('LOGIN TIME ERROR')
                    res.locals.error = 'Internal system error while logging in.'
                    return res.render('frontend/login')
                }
                console.log('user redirect');
                if(user.role=='user'){
                  res.redirect('/user/dashboard');
                }

                if(user.role=='admin'){
                  res.redirect('/admin/dashboard');
                }

            })
  })(req, res, next)
}


module.exports = [findUser, authenticate]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM