前后端分离项目 Vue+Laravel 如何解决 CSRF 缺失问题
(前端不是很精通,望大神不吝赐教)
前端是用Vue-Cli搭建的,后端用的Laravel6,跨域问题已经解决,但向后端请求返回419,一看就是CSRF的问题,但搜了很多答案都是解决blade模板中添加CSRF的,很少有关于Vue,找到一个还算比较像的答案,在main.js中增加一个请求的拦截器:
axios.interceptors.request.use(config => {
const cookie = document.cookie
if (cookie && config.method === 'post') {
config.headers['X-CSRFToken'] = getCookie(cookie)
}
return config
})
响应确实也发生了变化,但仍然返回错误信息:
message: “CSRF token mismatch.”
求大神指点迷津
把路由写在
routes/api.php
routes/web.php
才会加载VerifyCsrfToken
中间件