[英]Laravel Post Request Login by Curl
我正在租用一项服务(在 Laravel 上详细说明),但他没有我需要的功能。 我需要详细说明一个解析器。 我正在尝试通过 curl 进行身份验证,但收到错误“TokenMismatchException”。
我怎么解决这个问题 ?
$laravelLoginUrl = 'http://.../login';
$token = '...';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $laravelLoginUrl);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64)
AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107
Chrome/32.0.1700.107 Safari/537.36');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"email=...&password=>...&_token=" . $token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-CSRF-TOKEN: ' . $token,
));
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-CSRF-TOKEN: ' . $token,
));
$answer = curl_exec($ch);
echo $answer;
TokenMismatchException 可能是由 CSRF 中间件引起的。 尝试通过从protected $middlewareGroups
下的app\\Http\\Kernel.php
删除\\App\\Http\\Middleware\\VerifyCsrfToken::class,
来禁用特定路由
请注意,这会为您的所有网络路由禁用它。 如果您只想为特定路由禁用它,您可以转到app\\Http\\Middleware\\VerifyCsrfToken.php
并通过将api/*
放在 except 数组下将api/*
路由组列入白名单
可能您需要先获取页面正文并对其进行解析。 因为你需要令牌对吗? 使用相同的标头和 cookie。
检查此库以使用 jwt 令牌https://github.com/tymondesigns/jwt-auth
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.