我目前正致力于角+帆项目。我正在使用json web令牌进行身份验证。它工作正常,但我想为我的角度应用程序所做的每个验证请求设置一个新令牌。
这是我的身份验证政策
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);
使用这个策略我可以创建新令牌,但是我需要一种方法在每个响应中包含这个令牌,这就是我被卡住的地方。 我猜我可以在每个控制器动作中手动完成,但这是我想要避免
答案 0 :(得分:1)
在Sails中标准化响应的最佳方法是使用custom responses功能。简而言之,不是在控制器操作中调用res.send()
或res.json()
,而是调用res.ok()
,然后自定义每个新Sails应用程序生成的api/responses/ok.js
文件。这与Sails蓝图使用的响应相同!
在您的情况下,您希望将令牌保存到策略代码中的请求对象(例如req.token
),然后在ok.js
内的逻辑中使用该属性。 / p>