繁体   English   中英

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

[英]Laravel Sanctum auth:sanctum route allows access without bearer token

我正在尝试使用 Laravel Sanctum 使用承载令牌保护 API 路由。

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM