AdonisJS Error Code "EBADCSRFTOKEN" in Postman in PUT,POST,DELETE 操作
AdonisJS Error Code "EBADCSRFTOKEN" in Postman in PUT,POST,DELETE operation
我在 AdoniJs 中创建了 REST API。在此,我使用 GET、POST、PUT 和 DELETE 方法为 CRUD 操作创建了 API 端点。我使用 shieldjs
作为中间件来验证 CSRF
令牌。我正在从 Postman 拨打 API 电话。
首先,我调用了 API 的 GET 方法,我正在正确获取预期数据和 3 个 cookie 作为响应的一部分,其中一个是 XSRF-TOKEN
.
但是当我通过将键 X-XSRF-TOKEN
设置为请求 header 中的 cookie 的值 XSRF-TOKEN
来调用 PUT、POST 和 DELETE 方法时,我是在 Postman 中收到错误 EBADCSRFTOKEN
作为响应。
shield.js
文件中 ShieldJS 中 CSRF
的配置
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 中为 csrf
更改 enable: false
的值时,它工作正常但是在我 enable: true
之后我收到错误 EBADCSRFTOKEN
.
我在发送 xsrf
令牌时不应该收到此错误代码。
像这样将 filterUris 放在你的路由路径中
csrf: {
enable: true,
methods: ['POST', 'PUT', 'DELETE'],
filterUris: ['/firstroute','*',],
cookieOptions: {
httpOnly: false,
sameSite: true,
path: '/',
maxAge: 7200
}
}
有关 csrf 的更多信息请访问此网站 adonisjs
第二种方式是
- 创建 REST API 项目。创建 API 时不需要视图。未获取 csrftoken 时会生成此错误。
所以你可以尝试为唯一 API 创建一个项目,不包括像这样的视图
adonis new projectname --api-only
更多信息请关注 link 如何创建 API 项目。
我在 AdoniJs 中创建了 REST API。在此,我使用 GET、POST、PUT 和 DELETE 方法为 CRUD 操作创建了 API 端点。我使用 shieldjs
作为中间件来验证 CSRF
令牌。我正在从 Postman 拨打 API 电话。
首先,我调用了 API 的 GET 方法,我正在正确获取预期数据和 3 个 cookie 作为响应的一部分,其中一个是 XSRF-TOKEN
.
但是当我通过将键 X-XSRF-TOKEN
设置为请求 header 中的 cookie 的值 XSRF-TOKEN
来调用 PUT、POST 和 DELETE 方法时,我是在 Postman 中收到错误 EBADCSRFTOKEN
作为响应。
shield.js
文件中 ShieldJS 中 CSRF
的配置
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 中为 csrf
更改 enable: false
的值时,它工作正常但是在我 enable: true
之后我收到错误 EBADCSRFTOKEN
.
我在发送 xsrf
令牌时不应该收到此错误代码。
像这样将 filterUris 放在你的路由路径中
csrf: {
enable: true,
methods: ['POST', 'PUT', 'DELETE'],
filterUris: ['/firstroute','*',],
cookieOptions: {
httpOnly: false,
sameSite: true,
path: '/',
maxAge: 7200
}
}
有关 csrf 的更多信息请访问此网站 adonisjs
第二种方式是
- 创建 REST API 项目。创建 API 时不需要视图。未获取 csrftoken 时会生成此错误。
所以你可以尝试为唯一 API 创建一个项目,不包括像这样的视图
adonis new projectname --api-only
更多信息请关注 link 如何创建 API 项目。