繁体   English   中英

Laravel Post 请求通过 Curl 登录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM