Kong的插件: JWT

JWT的簡述

JWT是JSON Web Token的縮寫,使用cookie的解決跨域認證的問題,和cas系統是不一樣的理論。具體可以看一下大神些的文檔:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html

Kong的 JWT

  • 環境準備
    你應該有一個能正常運行的service和route,如果沒有的話,你可以參考https://blog.csdn.net/u014686399/article/details/100084613,我的試驗也是基於這個的
  • 啓用jwt插件
/services/2fc52878-1fe9-48ba-bc45-146da3822851/plugins POST
{
	"name":"jwt"
}
  • 2fc52878-1fe9-48ba-bc45-146da3822851這是service的id
  • jwt是固定值
  • 創建一個consumer
/consumers/ POST
{
	"username":"xjj_user_01",
	"custom_id":"users_001"
}
  • 創建一個jwt證書
/consumers/f4c713c0-6bf1-4079-83a0-135180d6ba53/jwt  POST
  • f4c713c0-6bf1-4079-83a0-135180d6ba53 這是consumer的id
  • 雖然是post請求,但是沒有請求體
  • 默認是用的是HS256
  • 請求頭使用 Content-Type: application/x-www-form-urlencoded
    在這裏插入圖片描述
  • 通過https://jwt.io/創建signature
    在這裏插入圖片描述

這是固定值

在這裏插入圖片描述

這裏是cookie裏面要攜帶的數據

在這裏插入圖片描述

製作簽名,圖片中箭頭的位置填寫,consumer的證書的secret
在這裏插入圖片描述

  • 測試直接訪問,會返回沒有授權
    在這裏插入圖片描述
  • 添加Authorization頭
 curl http://172.16.0.92:31545/xjj_tv/main \
    -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoieGlhcGpqIiwiYWdlIjoxNywiYWRkcmVzcyI6IkJKIiwiaXNzIjoiaEloZE1PQUZwaTlKS3E5bFpQTjRmVlUxVDkzalZJcjgifQ.lAePxvD4NjYzLRzx1rfKzdF5MNhQA-Oc5TPrzx85o2A'

在這裏插入圖片描述
下面是我的服務接收到的請求頭
在這裏插入圖片描述

  • 生成簽名還可以使用RS256 or ES256,這個可以參考官網

先寫到這裏了,有問題進QQ羣630300475

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章