我一直在尝试使用Laravel Sanctum,但是我遇到了"CSRF令牌不匹配"的错误,虽然我遵循了Laravel Sanctum文档中所说的一切。
`cors.php` 配置文件。
`cors.php` 配置文件。
'paths' => [
'api/*',
'login',
'logout',
'sanctum/csrf-cookie'
],
'supports_credentials' => true,
根据文档,内核已添加,因此不在此处添加其代码以避免浪费空间
.env
文件
SESSION_DRIVER=cookie
SESSION_DOMAIN=localhost
SANCTUM_STATEFUL_DOMAINS=localhost
我在这里使用Angular 9作为我的前端
这是我的拦截器
request = request.clone({
withCredentials: true
})
这是我向 Laravel 发送请求的方式
this.http.get<any>(url('sanctum/csrf-cookie')).subscribe(() => {
this.http.post<any>(url('login'), { this.username, this.password })
.subscribe(success => console.log(success), error => console.log(error))
})
一旦第一个路由被触发,我可以确认已创建cookies,但问题出现在第二个路由('/login')上。