訪問使用者中心實現認證

Donjan發表於2019-12-03

首先我們建立config/service.php用於配置微服務地址。

bootstrap/app.php 註冊該配置

$app->configure('service');

在.env檔案增加

SERVICE_USER_CENTER=http://192.168.137.200:9504

這樣我們就可能使用

config('service.user_center');

獲得使用者中心的地址了

安裝json rpc 元件

composer require graze/guzzle-jsonrpc

建立一箇中介軟體AuthMiddleware.php

實現功能,首先獲取token,優先順序為 header > $request->input。然後訪問使用者中心實現token驗證。

bootstrap/app.php註冊該中介軟體

$app->routeMiddleware([
    'auth' => App\Http\Middleware\AuthMiddleware::class,
]);

就可以在路由中使用了,比如首頁

$router->get('/', ['middleware' => 'auth', 'uses' => 'IndexController@index']);

現在我們訪問首頁,就必須帶上user_center獲取的token了。

驗證通過將返回user

{
    "user_id": 1,
    "username": "admin",
    "nick_name": "超級管理員",
    "real_name": "超級管理員",
    "sex": 0,
    "phone": "",
    "avatar": "",
    "last_login_at": null,
    "created_at": "2019-11-04 15:16:18",
    "status": 1
}

失敗將返回錯誤資訊

{
    "code": 401,
    "message": "Token未驗證通過"
}

部落格:《PHP 微服務練兵》系列教程

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章