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

Laravel Passport鉴权:通过Token获取当前用户数据的API开发问题

无需传递用户ID,通过Laravel Passport Token获取用户数据的实现方案

1. 修改路由,添加Passport认证中间件

先去掉路由里的用户ID参数,给路由加上auth:api中间件——这个中间件会自动校验请求头里的Authorization Token:

// api.php
Route::get('/user', [userData::class, 'get_all'])->middleware('auth:api');

2. 修改控制器方法,直接获取认证用户

不需要再接收User参数,auth:api中间件验证Token通过后,Laravel会自动把对应用户实例注入请求上下文,你直接通过Auth门面或request()助手就能拿到用户数据:

// userData.php
use Illuminate\Support\Facades\Auth;

public function get_all()
{
    // 获取当前认证的用户
    $user = Auth::user();
    
    // 也可以用 request()->user() 拿到同样的结果
    // $user = request()->user();

    return response()->json([
        'user' => $user,
    ]);    
}

原理说明

当请求头携带Authorization: Bearer {你的Token}时,auth:api中间件会解析并验证Token,验证通过后,Laravel会自动将Token关联的用户实例存入认证系统,此时你通过Auth::user()就能直接拿到该用户的全部数据,完全不用手动传递或查询用户ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:55:22