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

Laravel Passport客户端凭证授权令牌中如何获取客户端详情?

解决Laravel Passport客户端凭证模式下获取客户端详情的问题

在Client Credentials Grant模式下,$request->user()返回null是正常现象——这种认证模式本身不关联具体用户,仅验证客户端身份。要获取客户端详情,可通过以下方式实现:

  • 直接调用$request->client()方法
    启用client中间件并验证通过后,Passport会将客户端实例绑定到请求对象上,直接调用$request->client()即可拿到包含ID、名称、密钥等信息的客户端模型实例。

  • 通过AccessToken解析客户端信息
    若需要更底层的操作,可手动从请求中提取AccessToken并解析关联的客户端:

    $token = $request->bearerToken();
    $accessToken = \Laravel\Passport\Token::findToken($token);
    
    if ($accessToken) {
        $client = $accessToken->client;
        // 此处可使用$client获取客户端详情
    }
    

    注意:适配MongoDB时,需确保Passport的Token和Client模型继承MongoDB版本的Eloquent基类(如使用jenssegers/mongodb扩展时的Jenssegers\Mongodb\Eloquent\Model)。

  • 确认中间件配置正确
    务必确保路由使用的是client中间件而非auth:api——auth:api针对用户认证,client中间件才是客户端凭证模式的专用验证中间件:

    Route::get('/api/your-endpoint', [YourController::class, 'yourMethod'])->middleware('client');
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:17:02