You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Passport配置完成后API请求返回401 Unauthenticated求助

Laravel Passport API请求返回401 Unauthenticated 排查方案
  • 检查User模型是否引入Passport trait
    确认App\Models\User类中已引入Laravel\Passport\HasApiTokens trait,示例代码如下:
    use Laravel\Passport\HasApiTokens;
    
    class User extends Authenticatable
    {
        use HasApiTokens, HasFactory, Notifiable;
        // 其余模型代码
    }
    
  • 检查API路由是否绑定正确的认证中间件
    所有需要身份认证的API路由必须套在auth:api中间件组下,示例配置如下:
    // routes/api.php
    Route::middleware('auth:api')->group(function () {
        // 你的业务接口路由
    });
    
  • 检查请求头格式是否规范
    确认请求头Authorization值格式为Bearer 你生成的access_token,Bearer首字母必须大写,和token之间必须有且只有一个空格,token前后不能有多余的换行、空格字符。
  • 检查AuthServiceProvider是否引入Passport门面
    确认app/Providers/AuthServiceProvider.php顶部已引入Passport门面:
    use Laravel\Passport\Passport;
    
  • 检查token有效期配置是否生效
    你当前配置中使用了自定义的auth.token_expiration配置项,先确认config/auth.php中已正确配置对应数值,临时测试可替换为固定有效期验证是否是过期问题:
    Passport::tokensExpireIn(now()->addDay());
    Passport::refreshTokensExpireIn(now()->addDays(7));
    
  • 检查web服务器是否正常转发Authorization头
    你已配置Apache的.htaccess规则,若使用Nginx需在站点配置中添加以下规则:
    fastcgi_pass_header Authorization;
    
    可临时添加测试路由验证头是否正常被Laravel接收:
    // routes/api.php 无需加认证中间件
    Route::get('/test-header', function () {
        return request()->header('Authorization');
    });
    
    请求该接口若返回为空,则说明服务器没有正常转发Authorization头,优先排查web服务器配置。
  • 清理框架缓存
    执行以下命令清理配置、路由缓存,避免旧配置未生效:
    php artisan config:clear
    php artisan route:clear
    php artisan cache:clear
    

内容的提问来源于stack exchange,提问作者None

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:39:01