【发布时间】:2017-05-23 19:49:24
【问题描述】:
我正在使用 Laravel 的护照包为我的 rest api 提供基于令牌的身份验证。现在,我正在使用personal access token 概念来生成访问令牌。
要为单个用户生成访问令牌,我使用下面的代码来生成名称为“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...
稍后我想在我的管理仪表板上显示 个人访问令牌,我在再次获取生成的令牌时遇到了困难。尝试以下代码,但无法获取访问令牌。
$user = User::find(1)
dd($user->tokens())
我也尝试使用护照 vue 元素,但它只显示访问令牌名称,而不是实际令牌。
<passport-personal-access-tokens></passport-personal-access-tokens>
请帮我解决这个问题。
谢谢
【问题讨论】:
-
您检查过数据库是否成功创建了令牌?
-
dd($user->tokens())返回构建器,而不是令牌。尝试不带 () 的dd($user->tokens)。 @ceejayoz 说的是,如果令牌在那里,请检查您的数据库。您也可以简单地检查dd($user->tokens()->first()) -
@Robert 是对的,试试看
-
@Robert 它给出了令牌 ID,但没有给出实际的令牌。像这样 {"id":"3e7cb4aa1e6c94965cf1a7ca7d0ac580ac48f2c0fe7186d2c66aaf536f97798904d570a94080431c","user_id":3,"client_id":1,"name":"android","scopes":[],"revoked":71,"created_at":"20 -01-17 05:15:11","updated_at":"2017-01-17 05:15:11","expires_at":"2027-01-17 05:15:11"}
标签: php laravel-5 oauth laravel-passport