Node.js sails.js如何让_csrf在vuejs中使用

Node.js sails.js如何让_csrf在vuejs中使用,node.js,sails.js,Node.js,Sails.js,我正在使用sails.js构建RESTAPI。我想使用sails.js的第一个内置模板。 我的身份验证有问题。我不能使用邮递员登录或登录。 我搜索了一下,然后我就可以在船帆里找到(u csrf代币)了 用于前端 在前端,您可以访问由Sails-窗口.Sails\u LOCALS.\u CSRF插入的全局对象上的CSRF 用于测试 在config/routes.js中,您必须添加以下内容: 'GET /.temporary/csrf/token/for/tests': { action: '

我正在使用sails.js构建RESTAPI。我想使用sails.js的第一个内置模板。

我的身份验证有问题。我不能使用邮递员登录或登录。 我搜索了一下,然后我就可以在船帆里找到(u csrf代币)了


用于前端 在前端,您可以访问由Sails-
窗口.Sails\u LOCALS.\u CSRF
插入的全局对象上的CSRF

用于测试 在
config/routes.js
中,您必须添加以下内容:

'GET /.temporary/csrf/token/for/tests': { action: 'security/grant-csrf-token' },

但不要让它投入生产。推荐的方法是仅在自动测试期间公开此路由。这里有一些关于Sails.js中测试的信息——这是我的
lifecycle.test.js
——你看,我只为我的测试公开了这条路线,所以我的产品没有得到这一点。不建议使用Postman测试端点,因为这些测试是短暂的,测试工作在完成后即告结束。但是如果您编写单元/整数测试,那么工作测试将永远存在。

如果您使用的是Sails v1

// config/security.js
module.exports.security = {
    csrf: true,
};

// config/routes.js
'GET /csrfToken': 'SomeController.grantCsrfToken', 

// api/controllers/SomeController.js
module.exports = {
 grantCsrfToken: function (req, res /*, next */) {
    // Don't grant CSRF tokens over sockets.
    if (req.isSocket) {
      if (process.env.NODE_ENV === 'production') {
        return res.notFound();
      }
      return res.badRequest(new Error('Cannot access CSRF token via socket request.  Instead, send an HTTP request (i.e. XHR) to this endpoint.'));
    }
    // Send the CSRF token wrapped in an object.
    return res.json({
      _csrf: res.locals._csrf
    });
  },
}

// assets/js/some_filename.js
function send_some_post_request(extra_params) {
  $.get("/csrfToken", function (data, jwres) {
    if (jwres != 'success') { return false; }
    msg = {
      extra_params: extra_params,
      _csrf: data._csrf
    };
    $.post("doStuff", msg, function(data, status){
    });
  });
}

为什么需要执行此操作,而不是使用内置的
安全/grant csrf令牌
操作?除此之外,您还想阻止通过套接字发送吗?我也不知道为什么诺伊蒂达特说不要在生产中使用这个。我的意思是,你在生产中也需要CSRF代币吗?如果你在生产中不使用它,如果你不使用由sails构建的前端(即与sails api通信的SPA)@CalebJay这是一个很好的问题,你应该就此提出一个新的话题。令牌应在
res.locals.\u csrf
上可用。只需将其注入路由的一个有效负载,就像上面使用的操作一样-