Laravel Post请求登录Curl

时间:2017-10-31 15:49:42

标签: php laravel 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;

3 个答案:

答案 0 :(得分:1)

TokenMismatchException可能是由CSRF中间件引起的。尝试从\App\Http\Middleware\VerifyCsrfToken::class,

下的app\Http\Kernel.php删除protected $middlewareGroups,尝试停用特定路线

请注意,这会禁用所有网络路由。如果您只想为特定路由禁用它,可以转到app\Http\Middleware\VerifyCsrfToken.php并将api/*置于除了数组

之外的白名单,例如api路由组。

答案 1 :(得分:0)

可能你需要获取页面正文并先解析它。因为你需要令牌吗?使用相同的标题和Cookie。

答案 2 :(得分:0)

检查此库以使用jwt令牌https://github.com/tymondesigns/jwt-auth