能否移除Laravel Sanctum的Cookie功能仅使用Authorization Bearer令牌?
完全可以实现该需求,按以下步骤配置即可:
- 禁用有状态验证配置
打开config/sanctum.php配置文件,找到stateful配置项,将其值修改为空数组:
该配置控制Sanctum需要启用Cookie校验的域名列表,设置为空后Sanctum将不会为任何请求生成、校验身份Cookie。'stateful' => [], - 移除有状态中间件
打开app/Http/Kernel.php,找到$middlewareGroups下的api中间件组,删除其中的\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class中间件。该中间件负责处理Cookie校验、CSRF校验等有状态逻辑,移除后仅会走Bearer令牌校验流程。 - 配置跨域授权头支持
打开config/cors.php,确认allowed_headers配置项包含Authorization,也可直接设置为['*'],确保跨域请求时前端传递的Authorization请求头可以正常被后端接收。 - 功能验证
配置完成后执行php artisan config:clear清空配置缓存,后续鉴权逻辑保持不变:通过$user->createToken('自定义令牌名')->plainTextToken生成用户令牌,请求API时在请求头携带Authorization: Bearer <用户令牌>即可完成校验。
内容的提问来源于stack exchange,提问作者dvl333
相关产品推荐
相关产品推荐

