我收到Strapi Api调用错误:{“ statusCode”:403,“ error”:“ Forbidden”,“ message”:“ Forbidden”}

use*_*398 2 strapi

我正在使用trapi,并且在调用api时出现错误403禁止访问,例如http:// localhost:1337 / data

我已经调用了所有API,结果是相同的403错误,我也在邮递员中尝试过。

在api route.js文件中,我有以下内容:

 {
      "method": "GET",
      "path": "/data",
      "handler": "data.find",
      "config": {
        "policies": []
      }
Run Code Online (Sandbox Code Playgroud)

Strapi服务器是localhost端口:1337

来自浏览器的GET调用 http://localhost:1337/data

我在mongodb中有一个数据收集,它应该给json文档,但是它给出了这个错误:{"statusCode":403,"error":"Forbidden","message":"Forbidden"}

igl*_*zek 42

转到http://localhost:1337/admin/settings/users-permissions/roles然后到Public角色并在Application权限部分检查findonefind,它将涵盖前端应用程序的 API 需求。

请记住不要选择超过您需要的数量,它会向所有人公开,可能就像chmod 777,但更糟。

  • 2021 年答案确实:Strapi 版本 3.1.0-alpha.5(节点 v12.18.1) (2认同)

Tel*_*nse 18

2021 答案,任何时候你在 Strapi 中遇到 403 错误,它总是、总是与权限插件有关。您需要考虑您目前是什么类型的用户,公共用户还是经过身份验证的用户,或者您设置的任何其他用户。然后,您应该检查您在权限下授予了哪些权限,下面是我的问题以及解决方法的示例。

我刚刚从邮递员处获得身份验证时遇到了这个问题,经过几个小时的反复试验后我发现了问题。对于任何在尝试登录时遇到身份验证错误 403 的人。当您在登录时尝试进行身份验证时,您目前是公共用户,而不是经过身份验证的用户。因此,您需要允许公共用户发出身份验证请求。转到设置,在“用户和权限插件”、“角色”、“已验证”、“权限”、“用户权限”、“身份验证”下,并确保选中“回调”!然后向 Postman 提出请求,你应该会得到一个 jwt 回来!

http://localhost:1337/admin/settings/users-permissions/roles/1
Run Code Online (Sandbox Code Playgroud)

POST 请求到 URL:http://localhost:1337/auth/local/

{
  "identifier": "reader@strapi.io",
  "password": "strapi"
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!我登录时遇到问题,显然我更改了“公共”角色用户权限设置。就像您在登录时所说的那样,在经过身份验证之前您是公共用户,因此“公共”角色必须选中“连接”和“回调”。在“用户和权限插件”、“角色”、“公共”、“权限”、“用户权限”、“身份验证”下,并确保选中“回调”和“连接”!然后向 Postman 提出请求,你应该会得到一个 jwt 回来! (2认同)

Pie*_*rre 6

您是否从“用户和权限”插件更新了安全规则?

http:// localhost:1337 / admin / plugins / users-permissions /


The*_*ter 0

根据错误消息,MongoDB 与此无关。您收到 403 这意味着此 URL 存在访问问题。用户可能无权访问http://localhost:1337/data。这是服务层的问题