我有5个应用程序使用相同的santum API进行身份验证。我真正想做的是从另一个应用程序发出一个POST
请求制裁API。我处理GET
请求,如下所示,它正在工作。但当我发出POST
请求时,它会返回csrf令牌不匹配错误。
因此,有人能告诉我是否可以通过客户端向API圣地发出帖子请求
$response = $client->get('http://localhost:8000/api/user', [
'headers' => [
'accept' => 'application/json',
'cookie' => $request->header('cookie'),
'referer' => $request->header('referer'),
]
]);
感谢
i使用CCD_ 4而不是CCD_,在santum中,laravel从报头中的Authorization
读取访问令牌。
这就是我从laravel客户端向santum发出请求的方式(我的代码示例(:
$response = Http::withHeaders([
"Accept"=> "application/json",
"Authorization" => "Bearer " . Cookie::get("Laravel")
])
->post("http://localhost:8088/api/v1/url/find", ["find" => $request->find]);
我使用方法withHeaders
将头作为关联数组发送并用post
方法发送我的帖子正文第二个参数。
点击此处阅读更多信息:https://laravel.com/docs/9.x/http-client
您的请求中缺少一些标头。您需要首先向"/santum/csrf cookie";,什么给你一个CSRF令牌。然后您将该令牌作为标头"的值传递;X-CSRF-TOKEN";。圣地文件很好地解释了这一点。https://laravel.com/docs/8.x/sanctum#spa-认证祝你好运!