[英]How can I create and match CSRF token in vue 2 app and laravel
我没有使用laravel默认提供的vue 2设置。 相反,我为vue应用程序和laravel api后端有两个单独的文件夹。 Vue应用程序位于laravel项目文件夹之外。
在这种情况下,如何实现CSRF?
这就是我想做的事情,请让我知道它是否可以正常工作,或者有更好的方法。.1.在Vue应用程序中使用一些随机的长字符串设置Cookie。 2.在每个api调用中,确保正在发送cookie。 3.在laravel后端中,从请求中获取此令牌。 4.从cookie本身获取令牌。 5.匹配两个cookie,如果匹配则假定CSRF有效。
提前致谢..
我感到困惑,但是我通过询问社区找到了答案。
只需看一下Laravel CSRF文档 ,框架就将 XSRF-TOKEN
存储为cookie的密钥。 您需要做的是从cookie中获取XSRF-TOKEN
,然后使用X-XSRF-TOKEN: key_from_cookie
将令牌设置为标头的一部分X-XSRF-TOKEN: key_from_cookie
,Laravel将照常将密钥解密为CSRF令牌。
/** * Get the CSRF token from the request. * * @param \\Illuminate\\Http\\Request $request * @return string */ protected function getTokenFromRequest($request) { $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN'); if (! $token && $header = $request->header('X-XSRF-TOKEN')) { $token = $this->encrypter->decrypt($header); } return $token; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.