私人訪問令牌這種受權方式比較特殊,不須要受權碼,也不須要用戶輸入登陸憑證,而是用戶給本身頒發訪問令牌。這種受權方式在用戶測試、體驗平臺提供的認證 API 接口時很是方便,好比微信開放平臺和支付寶開發平臺都有沙箱測試模式,在這種測試模式下獲取受權令牌的方式其實就是經過私人訪問令牌來實現的。php
在開放平臺 blog
中註冊對應的測試應用 testapp
,在 blog
項目根目錄下運行如下命令來註冊 testapp
:web
php artisan passport:client --personal > testapp # 顯示結果 CLIENT_ID=14 CLIENT_SECRET=HImtGXC1CdG2LvhUpdp3y81IjuyrP0rLUPP8gisg
修改模型類:後端
use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use Laravel\Passport\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; ...
在 routes/web.php
中定義一個新的路由,用於測試獲取訪問令牌:api
Route::get('auth/personal', 'Auth\LoginController@personal');
在控制器 LoginController
編寫對應的方法 personal
:微信
public function personal() { $user = User::where('name', '測試用戶')->first(); $token = $user->createToken('Users')->accessToken; dd($token); }
訪問 http://blog.test/auth/personal
就能夠獲取到該用戶的訪問令牌了。生成的令牌記錄能夠在 oauth_access_tokens
數據表中找到,私人訪問令牌默認是長期有效的。app
拿到這個令牌以後咱們就能夠經過它訪問認證接口了。測試
以 Postman 爲例,把上面獲取到的令牌拷貝到 Bearer Token 頭裏面,訪問 blog.test/api/user
接口,就能夠獲取到當前認證用戶的信息了。code