Laravel Passport打印个人访问令牌

Min*_*ion 10 php oauth laravel-5 laravel-passport

我使用Laravel的护照包为我的rest api提供基于令牌的身份验证.现在,我正在使用个人访问令牌概念来生成访问令牌.

要为单个用户生成访问令牌,我使用下面的代码生成名为" android " 的令牌.

    $user = User::create([
                'name' => $data['name'],
                'email' => $data['email'],
                'password' => bcrypt($data['password']),
            ]);

    // Here the access token will be stored in $token variable.
    $token = $user->createToken('android')->accessToken;

    // Now the $token value would be something like
   //eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImMyNjI3YzU0YjFhNWIxZTFlMTdkODhmZTk1NzhjNzAzY2QyMTU0MzhlOD...
Run Code Online (Sandbox Code Playgroud)

稍后我想在我的管理仪表板上显示个人访问令牌,我很难再次获得生成的令牌.尝试下面的代码,但无法获取访问令牌.

$user = User::find(1)
dd($user->tokens())
Run Code Online (Sandbox Code Playgroud)

我也尝试使用护照vue元素,但它只显示访问令牌名称,而不是实际令牌.

<passport-personal-access-tokens></passport-personal-access-tokens>
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.

谢谢

Ser*_*ata 3

我认为您应该在创建用户之前或同时生成令牌并将其存储在数据库中:

添加列:

$table->string('token', 60)->unique();
Run Code Online (Sandbox Code Playgroud)

保存令牌:

$token = $user->createToken('android')->accessToken;

$user = User::create([
    'name' => $data['name'],
    'email' => $data['email'],
    'password' => bcrypt($data['password']),
    'token' => $token,
]);
Run Code Online (Sandbox Code Playgroud)

然后它将作为:

$user->token;
Run Code Online (Sandbox Code Playgroud)