将 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] 内的逻辑中使用该 属性 =].