我正在sails js上构建应用程序,并尝试在策略中间件中设置本地值。我无法这样做,请帮忙。
这不起作用
var perms = {"view":true,"add":true,"edit":false};
// My req.user comes after deserialize (working well)
req.user.perms = perms;
res.locals.user = req.user;
以下代码在哪里工作
var perms = {"view":true,"add":true,"edit":false};
res.locals.user = req.user;
res.locals.user.perms = perms;
我正在尝试访问句柄模板中的{{user.perms}}
我想我在第一段代码中做了一些概念错误的事情,请帮忙。
答案 0 :(得分:1)
我能够找到问题。
执行user
后,护照反序列化中设置User.find()
,因此req.user
被设置为MongoDB文档,因为User
模型没有权限属性,我无法设置值。
答案是在发送回调之前将MongoDB Document转换为普通的JSON对象。
passport.deserializeUser(function (userSession, done) {
User.findOne({"_id":userSession._id},function(err, user){
done(err, user.toObject())
})
}
现在可行了
req.user.perms = perms;
res.locals.user = req.user;