Laravel 經過 Passport 實現 API 請求認證:沙箱測試篇(私人訪問令牌)

私人訪問令牌這種受權方式比較特殊,不須要受權碼,也不須要用戶輸入登陸憑證,而是用戶給本身頒發訪問令牌。這種受權方式在用戶測試、體驗平臺提供的認證 API 接口時很是方便,好比微信開放平臺和支付寶開發平臺都有沙箱測試模式,在這種測試模式下獲取受權令牌的方式其實就是經過私人訪問令牌來實現的。php

在後端系統註冊測試應用

在開放平臺 blog 中註冊對應的測試應用 testapp,在 blog 項目根目錄下運行如下命令來註冊 testappweb

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

相關文章
相關標籤/搜索