Sails JS禁止POST请求

时间:2018-03-09 20:39:21

标签: sails.js postman

我正在尝试学习Sails JS和显然是REST API。

我创建了一个用户模型,我觉得它工作正常(它与我的数据库通信数据)。我还创建了一个包含4个输入的注册控制器,用于在我的用户集合中存储新记录。 (此控制器生成一些其他数据以在注册时完成记录)

我想用POSTMAN测试这个控制器,所以我转到我的routes.js看看:

'POST  /api/v1/entrance/signup': { action: 'entrance/signup' },

但是当我在192.168.1.13:1338/api/v1/entrance/signup输入POST请求并声明了我需要的4个输入时,我得到了这个答案:禁止

我不知道自己做错了什么。我还在blueprints.js

中启用了 rest 快捷方式操作

有人有想法吗? :)

2 个答案:

答案 0 :(得分:2)

如下所述,删除CSRF保护不是一个答案,因为它可能会使api暴露于安全漏洞。我目前使用JWT,但它似乎不像CSRF令牌那样安全,所以唯一正确的方法是在每个HTTP的请求头中包含令牌。

答案 1 :(得分:2)

问题确实与cross-site request forgery有关,但完全禁用相应的安全规则显然不是解决方案。 CSRF及其在sailsjs中的处理在manual的相应部分中有详细描述。简而言之,要使POST工作,您必须在请求中包含_csrf。例如。在视图模板中:

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