gpt4 book ai didi

adonis.js - Postman 中 PUT、POST、DELETE 操作中的 AdonisJS 错误代码 "EBADCSRFTOKEN"

转载 作者:行者123 更新时间:2023-12-03 08:53:30 25 4
gpt4 key购买 nike

我在 AdoniJs 中创建了 REST API。在此,我使用 GET、POST、PUT 和 DELETE 方法为 CRUD 操作创建了 API 端点。我使用 shieldjs 作为中间件来验证 CSRF token 。我正在从 Postman 进行 API 调用。

首先,我调用 API 的 GET 方法,并正确获取预期数据和 3 个 cookie 作为响应的一部分,其中一个是 XSRF-TOKEN

但是当我通过将键 X-XSRF-TOKEN 设置为请求 header 中 cookie 中的 XSRF-TOKEN 的值来调用 PUT、POST 和 DELETE 方法时,我在 Postman 中收到错误 EBADCSRFTOKEN 作为响应。

ShieldJS中CSRF的配置在shield.js文件中

csrf: {
enable: true,
methods: ['POST', 'PUT', 'DELETE'],
filterUris: [],
cookieOptions: {
httpOnly: false,
sameSite: true,
path: '/',
maxAge: 7200
}
}

handler.js 文件中的错误处理程序代码

async handle (error, {request, response }) {
if (error.code === 'EBADCSRFTOKEN') {
response.forbidden(error.code)
return
}
}

当我在 ShieldJs 中更改 csrfenable: false 值时,它工作正常,但在我执行 enable: true 之后,我是收到错误 EBADCSRFTOKEN

当我发送 xsrf token 时,我不应该收到此错误代码。

最佳答案

filterUris 放入您的路由路径中,如下所示

csrf: {
enable: true,
methods: ['POST', 'PUT', 'DELETE'],
filterUris: ['/firstroute','*',],
cookieOptions: {
httpOnly: false,
sameSite: true,
path: '/',
maxAge: 7200
}
}

有关 csrf 的更多信息请访问此网站 adonisjs


第二种方式是

  • 创建 REST API 项目。创建 API 时不需要 View 。未获取 csrftoken 时会出现此错误。所以你可以尝试为唯一不包含 View 的API创建一个项目,如下所示adonis 新项目名称 --api-only

更多信息请关注此link如何创建 API 项目。

关于adonis.js - Postman 中 PUT、POST、DELETE 操作中的 AdonisJS 错误代码 "EBADCSRFTOKEN",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57452122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com