我目前正在从事一个 Angular + sails 项目。我使用 json Web token 进行身份验证。它工作正常,但我想为我的 Angular 应用程序执行的每个经过验证的请求设置一个新 token 。
这是我的身份验证政策
passport.authenticate('jwt', function (error, user, info) {
if (error) return res.serverError(error);
if (!user)
return res.send({
message: info.message,
code: info.code,
tokenError: info.name
});
// The token is ok past this line
// I check the user again
User.findOne({ email: user.email }, function (err, thisUser) {
if (err) { return res.send(err); }
if (!thisUser) {
// send a bad response
}
req.user = user;
// This is the new token that I wanna send to the frontend
var newToken = AuthService.createToken(thisUser);
next();
});
})(req, res);
通过此策略,我可以创建新 token ,但随后我需要一种方法来在每个响应中包含此 token ,这就是我陷入困境的点。 我想我可以在每个 Controller 操作中手动执行此操作,但这是我想避免的
最佳答案
标准化 Sails 中的响应的最佳方法是使用 custom responses特征。简而言之,不要在 Controller 操作中调用 res.send()
或 res.json()
,而是调用 res.ok()
,然后自定义每个新 Sails 应用程序生成的 api/responses/ok.js
文件。这与 Sails 蓝图也使用相同的响应!
在您的情况下,您希望将 token 保存到策略代码中的请求对象(例如 req.token
)上,然后在 ok 内部的逻辑中使用该属性.js
.
关于javascript - 将 attr 传递给 sails js 中的所有良好响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35189643/