将一个attr传递给sas

时间:2016-02-03 23:18:17

标签: javascript sails.js token jwt passport.js

我目前正致力于角+帆项目。我正在使用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);

使用这个策略我可以创建新令牌,但是我需要一种方法在每个响应中包含这个令牌,这就是我被卡住的地方。 我猜我可以在每个控制器动作中手动完成,但这是我想要避免

1 个答案:

答案 0 :(得分:1)

在Sails中标准化响应的最佳方法是使用custom responses功能。简而言之,不是在控制器操作中调用res.send()res.json(),而是调用res.ok(),然后自定义每个新Sails应用程序生成的api/responses/ok.js文件。这与Sails蓝图使用的响应相同!

在您的情况下,您希望将令牌保存到策略代码中的请求对象(例如req.token),然后在ok.js内的逻辑中使用该属性。 / p>