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
还没有评论,来说两句吧...