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

时间:2018-12-28 09:16:20

标签: strapi

我正在使用Stradi,但在调用api(例如http://localhost:1337/data

)时出现错误403禁止访问

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

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

 {
      "method": "GET",
      "path": "/data",
      "handler": "data.find",
      "config": {
        "policies": []
      }

Strapi服务器是本地主机端口:1337

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

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

5 个答案:

答案 0 :(得分:4)

2020年的答案是转到http://localhost:1337/admin/settings/users-permissions/roles,然后转到“公共”角色,然后在“应用程序”许可权部分中选中countfindonefind,它将满足前端应用程序的API需求。

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

2021 的回答,每当您在 Strapi 中遇到 403 错误时,这总是与权限插件有关。您需要考虑您目前是哪种类型的用户,公开的或经过身份验证的,或您设置的任何其他用户。然后,您应该检查在权限下您授予哪些权限,以下是我遇到的问题以及我如何解决的示例。

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

http://localhost:1337/admin/settings/users-permissions/roles/1

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

{ "标识符": "reader@strapi.io", “密码”:“strapi” }

答案 3 :(得分:0)

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

答案 4 :(得分:0)

确保 JWT_SECRET 和 ADMIN_JWT_SECRET 不同

这可能不会直接帮助 OP,但它确实清除了我的 Strapi 403 错误。

我在尝试访问用户配置文件时遇到 403 错误,尽管特定错误消息(在 403 返回中)与 OP 的不同:“凭据无效”。凭据应该没问题,因为在我成功登录之前的片刻,返回了一个 JWT,然后在后续请求的授权标头中使用。

解决办法: 最终我的问题是,在我的 .env 文件中,JWT_SECRETADMIN_JWT_SECRET 是相同的(我很懒惰),而 Strapi 对此有问题。使秘密不同,然后重新启动,清除了我的 403 错误。

在这里讨论: https://github.com/strapi/documentation/issues/14