要通过 Sanctum 中间件保护你的路由,需要在路由文件中使用中间件。下面是一个示例:
Route::middleware(['auth:sanctum'])->group(function () {
Route::get('/dashboard', function () {
return view('dashboard');
});
});
在此示例中,Route::middleware(['auth:sanctum'])
确定了该组路由应由 Sanctum 中间件保护。如果用户未验证,则此基于基于 token 的中间件将通过 HTTP 401 响应显示错误信息。
确保在使用 Sanctum 时,将 AuthenticateSession
中间件从 web
中间件堆栈中删除,因为 Sanctum 通过其自己的身份验证机制进行身份验证。
// app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
// Remove the `AuthenticateSession` middleware.
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];