javascript - 将 attr 传递给 sails js 中的所有良好响应

标签 javascript sails.js token jwt passport.js

我目前正在从事一个 Angular + sails 项目。我使用 json Web token 进行身份验证。它工作正常,但我想为我的 Angular 应用程序执行的每个经过验证的请求设置一个新 token 。

这是我的身份验证政策

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);

通过此策略,我可以创建新 token ,但随后我需要一种方法来在每个响应中包含此 token ,这就是我陷入困境的点。 我想我可以在每个 Controller 操作中手动执行此操作,但这是我想避免的

最佳答案

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

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

关于javascript - 将 attr 传递给 sails js 中的所有良好响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35189643/

相关文章:

node.js - SailsJS req.body undefined

javascript - 将 JSON 数据从 Node 中的 URL 存储到变量中?

android - 为什么我无法获取华为推送响应的token?

JavaScript 正则表达式替换字符串中的最后一个模式?

javascript - .split(/_(.+)?/)[i] 是如何工作的?

javascript - for 循环内的 promise

c++ - "expected unqualified-id before ‘.’ token”错误--C++

c - strtok 内部的 strtok 无法使用原始 token 的副本 - C

javascript - DataTables API - ColumnDefs 和渲染

javascript - 如何构造一个正则表达式来分割这段文字?