将 ATTR 传递给 Sails JS 中的所有良好响应
pass an attr to all good responses in sails js
我目前正在做一个角度+帆项目。我正在使用 json 网络令牌进行身份验证。它工作正常,但我想为我的角度应用程序执行的每个经过验证的请求设置一个新令牌。
这是我的身份验证策略
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 中标准化响应的最佳方法是使用自定义响应功能。 简而言之,不要在控制器操作中调用res.send()
或res.json()
,而是改为调用res.ok()
,然后自定义每个新 Sails 应用程序生成的api/responses/ok.js
文件。 这也是帆船蓝图使用的相同响应!
在您的情况下,您希望将令牌保存到请求对象上(例如 req.token
),然后在 ok.js
的逻辑中使用该属性。
相关文章:
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- 使Intro.js工具提示响应
- angular.js我如何设置数据什么是响应值
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- D3.js:将一个有响应的饼图放在其父分区的中心
- 使用Backbone.js访问JSON响应的部分
- 引导:响应式设计-当窗口大小从980px调整到979px时执行JS
- 为什么新js Fetch标准禁止响应头名称为'设置Cookie 1/2'
- JS-通用解析JSON响应
- 分析angular.js中的JSONP$http.json()响应
- Rails 4远程true和响应js
- 为什么我的rails应用程序在生产环境中没有正确响应.js格式
- 如何使用响应式iframes使iframe响应.js
- 如何在没有 Web 服务器的情况下做出响应.js工作
- 响应.js将首选媒体查询而不是稍后定义的全局选择器
- IE8 支持使用响应.js进行媒体查询
- ie8响应js'未定义'为null或不是对象
- mobilesafari 5在下一次行动之前没有响应js事件
- 命令按钮不响应JS函数
- 如何在向第三方 API 节点发出多个请求后发送响应.js.