laravel框架下 前后端分离开发时 通过AJax请求单独获取加密后的csrf_token

来源:互联网 发布:mac的maven仓库地址 编辑:程序博客网 时间:2024/05/29 16:28

项目中使用的是前后端分离的开发模式,导致有些页面是没有后端请求的, 但是在页面上偶尔也会出现提交表单的情况,后端对post的请求都会校验CSRF,(只有在路由的middleware中设置了[csrf]时才会在客户端的cookie中产上一个XSRF-TOKEN),由于前面这个情况 是没有经过含有 csrf的middleware校验 所以在客户端没有XSRF-TOKEN,但是在这个页面提交表单的时候又需要验证csrf,所以必须要单独获取这个token,具体做法如下:

$encrypter = app('Illuminate\Encryption\Encrypter');//调用csrf中间件的加密方法$encrypted_token = $encrypter->encrypt(csrf_token()); //对csrf token 加密后面就可以直接返回给客户端  或者设置到客户端的cookie中了。


0 0