Laravel Sanctum auth:sanctum 路由允许在没有不记名令牌的情况下访问

1 laravel laravel-sanctum

我正在尝试使用 Laravel Sanctum 通过不记名令牌保护 API 路由。

我已在 api.php 中正确添加了路由的中间件,如下所示。api/me 路由设置为 return auth()->user();

Route::group(['middleware' => ['auth:sanctum']], function () {
    Route::post('/me', 'App\Http\Controllers\APIController@me');
});
Run Code Online (Sandbox Code Playgroud)

为了测试这一点,我首先成功登录并生成不记名令牌,因此工作正常。

但是,当我尝试在没有不记名令牌的情况下访问 api/me 路由时,它仍然显示完整的用户。它不应该允许在没有不记名令牌的情况下访问路由,为什么要这样做?

我已经搜索了几个小时但没有任何乐趣 - 有人有任何见解吗?

NIC*_*ICO 11

我只是在这里猜测..您是否在 kernel.php 中“EnsureFrontendRequestAreStateful”?因为那时 Sanctum 将使用基于 Session-Cookie 的身份验证。仅当您对不在您的域或子域上运行的第三方应用程序进行身份验证时,Sanctum 才会使用不记名令牌。

如果您不想对 SPA 使用基于会话 cookie 的身份验证,请从 kernel.php 中删除“EnsureFrontendRequestsAreStateful”类。现在 Sanctum 将始终使用不记名令牌进行身份验证。