Sails JS 禁止 POST 请求

Sails JS forbidden POST request

我正在尝试学习 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 个输入时,我得到了这个答案:Forbidden

我不知道我做错了什么。我还在 blueprints.js[=15] 中启用了 restshortcutsactions =]

有人有想法吗? :)

如下所述,移除 CSRF 保护不是解决方案,因为它可能会使 api 面临安全漏洞。我目前使用 JWT,但它似乎不如 CSRF 令牌安全,所以唯一正确的方法是在每个 HTTP 请求中包含令牌 header.

该问题确实与 cross-site request forgery, but disabling the corresponding security rule altogether is quite obviously not a solution. CSRF and its treatment in sailsjs are well described in the corresponding part of the manual 有关。简而言之,要使 POST 起作用,您必须在请求中包含 _csrf。例如。在视图模板中:

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