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

时间:2021-05-11 00:41:27

标签: laravel laravel-sanctum

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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