我有5个应用程序使用相同的圣殿API进行身份验证。我真正想做的是从另一个应用程序中发出一个POST请求。我像下面这样做GET请求,而且它正在工作。但是,当我发出POST请求时,它会返回csrf令牌失配错误。
那么,请有人告诉我,是否可以通过客户端将请求发送到密室API?
$response = $client->get('http://localhost:8000/api/user', [
'headers' => [
'accept' => 'application/json',
'cookie' => $request->header('cookie'),
'referer' => $request->header('referer'),
]
]);谢谢
发布于 2022-08-02 08:23:47
我使用的是Bearer而不是cookie,在神圣的空间中,laravel在标头中从Authorization读取访问令牌。
这就是我如何从laravel客户请求圣所(我的代码的一个例子):
$response = Http::withHeaders([
"Accept"=> "application/json",
"Authorization" => "Bearer " . Cookie::get("Laravel")
])
->post("http://localhost:8088/api/v1/url/find", ["find" => $request->find]);我用方法withHeaders作为关联数组发送我的头,并用post方法第二个参数发送post正文。
在这里阅读更多信息:https://laravel.com/docs/9.x/http-client
发布于 2022-10-15 17:32:14
你的请求中缺少了一些标题。你需要先向"/sanctum/ CSRF -cookie“提出请求,这样才能给你一个CSRF令牌。然后将该令牌作为报头“X令牌”的值传递。圣殿文件很好地解释了这一点。https://laravel.com/docs/8.x/sanctum#spa-authenticating祝你好运!
https://stackoverflow.com/questions/73203074
复制相似问题