在 laravel 中使用授权令牌创建 get api

viv*_* kn 1 php token access-token laravel

我有一个注册api,它将用户详细信息注册到数据库,它还使用 laravel Passport生成令牌 并将令牌保存到数据库中

现在我正在尝试创建一个get api,它将使用生成的令牌从数据库中获取所有数据

我尝试过什么

api.php中

Route::get('/get_user', [userDEtails::class, 'get_user']);

userDEtails.php 控制器

public function get_user(Reqest $req)
{

// what code must i add here
    
}
Run Code Online (Sandbox Code Playgroud)

在邮递员中,我想在标头中添加令牌作为授权和 api 来工作

我正在使用 Laravel 框架 9.41.0

在此输入图像描述

在此输入图像描述

Bki*_*kiD 6

既然您已经说过您正在使用 Laravel Passport 来实现此目的,请尝试这样做来获取用户(并检查范围)

public function get_user(Request $request)
{
    $user = $request->user();
}
Run Code Online (Sandbox Code Playgroud)

理想情况下这应该有效。您还需要确保您的路线使用“auth:api”中间件,如下所示 -

Route::get('/get_user', [userDEtails::class, 'get_user'])->middleware('auth:api');
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因您无法为此路由使用“auth:api”中间件,并且需要坚持使用“web”或其他内容,则可以使用 -

$user = auth()->guard('api')->user()
Run Code Online (Sandbox Code Playgroud)

或者

$user = $request->user('api')
Run Code Online (Sandbox Code Playgroud)

而是获取用户对象。