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

标签 node.js sails.js

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

我遇到身份验证问题。我无法使用 postman 登录或登录。 我搜索了一下,我能够使用

在 sails 中获取 _csrf token

<form>
  <input type="hidden" name="_csrf" value="<%= _csrf %>" />
</form>

但我找不到任何可以将 token 作为 json 传递给我的路由,以便我可以从 vue 访问它。 类似于 GET : localhost:1337/api/token

{ _csrf: 'ajg4JD(JGdajhLJALHDa' }

有人可以帮助我走上正轨吗?我已经找了一段时间了。

最佳答案

对于前端

在前端,您可以访问 Sails 插入的全局对象上的 CSRF - window.SAILS_LOCALS._csrf

用于测试

在您的config/routes.js中,您必须添加以下内容:

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

不过不要让它投入生产。建议的方法是仅在自动化测试期间公开此路由。以下是有关 Sails.js 中测试的一些信息 - https://sailsjs.com/documentation/concepts/testing - 这是我的 lifecycle.test.js - https://gist.github.com/Noitidart/63df651dc76812da6cb3bfe1ce4e9e0e - 你看我只为我的测试公开这条路线,所以我的生产没有得到这个。不建议使用 Postman 测试您的端点,因为这些测试是短暂的,您的测试工作在完成后就消失了。但如果您编写单元/集成测试,则工作测试将永远保留。

关于node.js - sails.js 如何让 _csrf 在 vuejs 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55079264/

相关文章:

javascript - Sequelize with PostgreSQL 中与外键约束的丰富自关联

sails.js - 水线,尝试创建一对多关联时出错

node.js - 无法使用 npm 安装播放器模块

node.js - 如何等待 form-data node.js 模块中的管道完成?

ubuntu - npm installsails 尝试在 1.7.5 版本安装 less

node.js - sails.js(使用 node.js 和 express.js)的标题或应用名称在哪里?

sails.js - 如何针对Sails中的另一个模型属性验证模型属性?

node.js - 模式数组中的 Mongoose 计数

node.js - 使用quotaUser后,userRateLimitExceeded错误谷歌驱动器API