我正在为我的应用程序使用内置的环回用户模型。我想要完成的是,特定模型条目(例如文章)的作者在保存时会自动保存到访问令牌标识的模型中。
我尝试通过使用关系管理器来实现这一点,但内置的用户模型并未在此处列出。
最好在查询所有文章时,我希望用户名可以在概览中显示,但前提是当前用户已通过身份验证。
**更新**
经过相当多的研究,我至少找到了一种将当前用户添加到环回上下文的方法:
// see https://docs.strongloop.com/display/public/LB/Using+current+context
app.use(loopback.context());
app.use(loopback.token());
app.use(function setCurrentUser(req, res, next) {
console.log(req.accessToken);
if (!req.accessToken) {
return next();
}
app.models.user.findById(req.accessToken.userId, function (err, user){
if (err) {
return next(err);
}
if (!user) {
return next(new Error('No user with this access token was found.'));
}
var loopbackContext = loopback.getCurrentContext();
if (loopbackContext) {
loopbackContext.set('currentUser', user);
}
next();
});
});
现在我正在尝试通过 mixin 添加用户:
module.exports = function (Model) {
Model.observe('before save', function event(ctx, next) {
var user;
var loopbackContext = loopback.getCurrentContext();
if (loopbackContext && loopbackContext.active && loopbackContext.active.currentUser) {
user = loopbackContext.active.currentUser;
console.log(user);
if (ctx.instance) {
ctx.instance.userId = user.id;
} else {
ctx.data.userId = user.id;
}
}
next();
});
};
我还在github 上打开了一个问题。