【发布时间】:2018-11-02 21:26:00
【问题描述】:
我在尝试使用 ivew Ui 上传组件时收到EBADCSRFTOKEN: Invalid CSRF token。试图设置这样的标题
this.headerCsrf['X-XSRF-TOKEN'] = document.cookie.split("XSRF-TOKEN=")[1]
它使用键 X-XSRF-TOKEN 添加标题,但我仍然收到此错误。请帮忙。我正在使用 adonuxt..
【问题讨论】:
我在尝试使用 ivew Ui 上传组件时收到EBADCSRFTOKEN: Invalid CSRF token。试图设置这样的标题
this.headerCsrf['X-XSRF-TOKEN'] = document.cookie.split("XSRF-TOKEN=")[1]
它使用键 X-XSRF-TOKEN 添加标题,但我仍然收到此错误。请帮忙。我正在使用 adonuxt..
【问题讨论】:
我无法从您对控制器的调用中猜出上下文。但我的标头使用 AJAX 以以下格式正确发送:
headers: {'x-csrf-token': $('[name=_csrf]').val()},
或者,您可以在 config/shield.js 文件中禁用 CSRF auth,在底部将启用变量设置为 false,如下所示:
csrf: {
enable: false,
methods: ['POST', 'PUT', 'DELETE'],
filterUris: [],
cookieOptions: {
httpOnly: false,
sameSite: true,
path: '/',
maxAge: 7200
}
}
【讨论】:
你可以像这样在 filterUris 中添加你的路由路径
csrf: {
enable: true,
methods: ['POST', 'PUT', 'DELETE'],
filterUris: ['/firstroute','*',],
cookieOptions: {
httpOnly: false,
sameSite: true,
path: '/',
maxAge: 7200
}
}
有关此检查的更多信息link
【讨论】: