如何在axios拦截器中设置http cookie?

时间:2018-12-23 21:03:55

标签: http cookies vue.js axios

我想知道如何为http cookie设置axios拦截器。

我在vue SPA中使用axios,后端在laravel上,API设置了http cookie,但是现在我需要将其发送回去以进行某些请求。

实际上,我具有身份验证令牌和刷新令牌,身份验证令牌位于本地存储中(短暂存在),接下来是应用程序流:在每个请求中,我在请求标头中设置身份验证令牌,laravel API会检查身份验证令牌是否有效以及是否它是请求返回数据,但是如果auth令牌无效,则我必须使用http cookie中的refreshtoken发出新请求,我知道我无法通过javascript访问它,该怎么办?我该如何进行这项工作?

这里还有一个棘手的部分是我不想在每个请求上都设置刷新令牌,仅当需要重新生成身份验证令牌时。

如果我误解了一些东西,请不要犹豫,将我带入正确的方向。

1 个答案:

答案 0 :(得分:0)

像这样简单的事情应该使您朝正确的方向前进

$url = 'url_to_post';
$data = array("first_name" => "First name","last_name" => "last name","email"=>"email@gmail.com","addresses" => array ("address1" => "some address" ,"city" => "city","country" => "CA", "first_name" =>  "Mother","last_name" =>  "Lastnameson","phone" => "555-1212", "province" => "ON", "zip" => "123 ABC" ) );

$postdata = json_encode($data);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
curl_close($ch);
print_r ($result);
相关问题