我正在使用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权限部分检查findone和find,它将涵盖前端应用程序的 API 需求。
请记住不要选择超过您需要的数量,它会向所有人公开,可能就像chmod 777,但更糟。
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)