laravel version: 5.8
一、安裝篇
裝這個,跟著他的步驟做 https://github.com/robsontenorio/laravel-keycloak-guard
二、使用篇
我們假設 Keycloak Server 有大大幫你開好了 (沒有請點我)
取得 Keycloak 金鑰
https://auth.leotekiot.com 預設帳號: admin 預設密碼: Pa55w0rd
登入後,依序操作得到金鑰 Realm Setting > Keys > RS256 Public key
放到 laravel 的 .env 設定中
KEYCLOAK_REALM_PUBLIC_KEY=你的公開金鑰
登入 Keycloak
Clients > {{ 選個Client }} > Credentials Secret 那邊就是我們的 Client Secret 了
User > View all users > {{ 選個User }} 或是你要新創一個也可以, 總之要記得你的帳號密碼喔
移駕到 Postman 來嘗試登入
用這個 API 取得 token,
auth_realm
填上現在使用的 Realm 預設是 Master
/auth/realms/{{auth_realm}}/protocol/openid-connect/token
需要的參數前面有介紹過了,按照圖片填滿它吧!
送出就有 AccessToken 了
應用他!!
複製剛才的 access_token 貼到那個需要登入的 API 裡面 Authorization > Type: Bearer Token >
成功登入~
三、檢查權限篇
// import Auth
use Illuminate\Support\Facades\Auth;
// 解析 JWT 並取得 token
$tokenString = Auth::token();
return [
'token' => json_decode($tokenString)
];
// 從 token 來檢查權限(角色)
$Role = 'admin';
$isAdmin = Auth::hasRole($CLIENT, $Role);