将 attr 传递给 sails js 中的所有良好响应
pass an attr to all good responses in sails js
我目前正在从事 angular + sails 项目。我正在使用 json 网络令牌进行身份验证。它工作正常,但我想为我的 angular 应用所做的每个经过验证的请求设置一个新令牌。
这是我的授权政策
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);
有了这个策略,我可以创建新的令牌,但是我需要一种方法在每个响应中包含这个令牌,这就是我遇到的问题。
我想我可以在每个控制器操作中手动完成,但这是我想避免的
在 Sails 中标准化您的响应的最佳方式是使用 custom responses 功能。简而言之,不要在控制器操作中调用 res.send()
或 res.json()
,而是调用 res.ok()
,然后自定义每个新 Sails 应用程序生成的 api/responses/ok.js
文件。这与 Sails 蓝图使用的响应相同!
在您的情况下,您希望将令牌保存到策略代码中的请求对象(例如 req.token
),然后在 [=15] 内的逻辑中使用该 属性 =].
我目前正在从事 angular + sails 项目。我正在使用 json 网络令牌进行身份验证。它工作正常,但我想为我的 angular 应用所做的每个经过验证的请求设置一个新令牌。
这是我的授权政策
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);
有了这个策略,我可以创建新的令牌,但是我需要一种方法在每个响应中包含这个令牌,这就是我遇到的问题。 我想我可以在每个控制器操作中手动完成,但这是我想避免的
在 Sails 中标准化您的响应的最佳方式是使用 custom responses 功能。简而言之,不要在控制器操作中调用 res.send()
或 res.json()
,而是调用 res.ok()
,然后自定义每个新 Sails 应用程序生成的 api/responses/ok.js
文件。这与 Sails 蓝图使用的响应相同!
在您的情况下,您希望将令牌保存到策略代码中的请求对象(例如 req.token
),然后在 [=15] 内的逻辑中使用该 属性 =].