您现在的位置是:群英 > 开发技术 > PHP语言
laravel csrf验证开启报错的问题怎样解决?
Admin发表于 2021-12-10 18:49:191071 次浏览

    这篇文章主要给大家分享laravel csrf验证的使用经验,有一些朋友会遇到csrf验证报错419的问题,但是不知道怎样解决,对此下面就给大家来介绍解决方法,感兴趣的朋友可以了解看看。

    问题:
    laravel 在web路由下无论是表单提交啊 还是ajax请求啊 只要是请求方式不满足 ['HEAD', 'GET', 'OPTIONS']就会报419错误,原因是其自带开启csrf验证,防止csrf攻击

    解决方式:

    一.屏蔽csrf验证

    部分屏蔽
App\Http\Middleware\VerifyCsrfToken.php
protected $except = [
//这里添加屏蔽的路由地址
];

    全部屏蔽
App\Http\Kernel.php
注释 \App\Http\Middleware\VerifyCsrfToken::class,

    二.加入csrf验证参数

    form提交

<input type="hidden" name="_token" value="{{csrf_token()}}">

    ajax提交

<meta name="_token" content="{{csrf_token()}}">
$.ajax({
   url: "xxxx",
   type: "POST",
   data: data,
   headers: {
     'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
     },
   success: function (data) {}
  });

    注意!!!

    因为呢 laravel的token是存储在session里的,所以呢,我遇到了一个大坑,代码传到linux里后 csrf总报错???最后debug发现 因为提交的token值与session里的不一致
    (md 因为 storag2目录么权限 ―>storage/framework/sessions 是存储session的目录)
    开启777就ok了

    最后总结一下排错顺序

    1.检查表单有没有 csrf_token
    2.linux 下storage有没有读写权限
    3.检查session存储位置时候更换过(换过里面还是否有_token)
    4.清除浏览器缓存,laravel缓存
    最后没招 自己源码debug吧

    以上就是关于laravel csrf验证开启报错419的解决方法,需要的朋友可以参考,希望对大家解决问题有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。

文本转载自脚本之家

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: laravel csrf验证
相关信息推荐
2022-08-27 17:49:40 
摘要:本篇文章带大家了解一下Node中Express的错误处理中间件,介绍一下定义错误处理中间件、与 async/await 一起使用的方法,希望对大家有所帮助!
2022-05-13 17:50:44 
摘要:本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于旋转数组的相关问题,包括了什么是旋转数组、环状替换等等内容,下面一起来看一下,希望对大家有帮助。
2022-05-26 17:20:11 
摘要:一、js防抖和节流在进行窗口的resize、scroll、输出框内容校验等操纵的时候,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常之差。那么为了前端性能的优化也为了用户更好的
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部