我使用axios来请求一些需要用户登录的数据。我已经尝试了几件事来让401去,但还没有快乐。 API位于子域中,我认为这可能是我遇到问题的原因。我还将会话设置为.domain.tld
。
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class
位于网络中间件上。当我使用护照演示时,授权工作正常。但是,当我向子域上的API路由发送axios请求时,它没有任何演示发送到Web路由的Set-Cookie标头。然后我尝试放入window.axios.defaults.headers.common['Authorization'] = 'Bearer (laravel_token here)
但也没有运气。
如何使用我的API端点(在api子域上)使用Laravel的应用程序内Passport身份验证?
答案 0 :(得分:1)
这可能是axios本身的一个问题。请使用Guzzle选择退出其axios的可能性。
$http = new \GuzzleHttp\Client;
$response = $http->request('POST', 'your api url here', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$access_token,
],
'form_params'=>[
//if you have any data to send as a post request then put it here.
]
]);
同样设置Accept参数。给它一个滚动。
答案 1 :(得分:0)
想出来!需要在Axios中启用withCredentials。
axios.defaults.withCredentials = true;