Passport js и express js. Как создать роли?

Здравствуйте! Есть такая схема mongoose:

var mongoose = require('mongoose');
  module.exports = mongoose.model('Admin',{
    username: String,
    password: String,
    role: { type: String, default: "user" },
    soft_token: { type: String, default: 0 }
});


Как с помощью passportjs запретить доступ к странице в зависимости от того кто пользователь, admin или user.
  • Вопрос задан
  • 772 просмотра
Решения вопроса 1
@Sakolik Автор вопроса
Решил так:
var isAuthenticated = function (req, res, next) {
	var currentUserId = req.user ? req.user.id : false;
	if(!currentUserId){
		res.redirect('/');
		return;
	}
	Admin.findById(currentUserId,function (err, user) {
		if(!user || user.role !== "admin"){
			res.redirect('/');
		}else{
			next();
		}
	})
}

router:
router.get('/admin', isAuthenticated, function(req, res, next) {
		
		res.end();
	});

Теперь простой юзер не сможет зайти на "/admin"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы