import { HttpClient } from '@angular/common/http';
constructor(private http: HttpClient) { }
sendRequest() { const url = 'https://example.com/api'; this.http.get(url, { withCredentials: true }).subscribe(response => { console.log(response); }); }
首先安装sanctum:
composer require laravel/sanctum
在config/auth.php中添加Sanctum guard和provider:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'sanctum' => [
'driver' => 'session',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
],
然后运行sanctum的安装命令:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
最后,将Sanctum中间件添加到路由中。
Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });
现在API应用可以保护会话和CSRF,而Angular应用可以与API进行跨域通信。