Kong的插件: JWT

小鱼儿 2024-04-17 17:07 153阅读 0赞

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
    {

    1. "name":"jwt"

    }

  • 2fc52878-1fe9-48ba-bc45-146da3822851这是service的id
  • jwt是固定值
  • 创建一个consumer

    /consumers/ POST
    {

    1. "username":"xjj_user_01",
    2. "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 \

    1. -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoieGlhcGpqIiwiYWdlIjoxNywiYWRkcmVzcyI6IkJKIiwiaXNzIjoiaEloZE1PQUZwaTlKS3E5bFpQTjRmVlUxVDkzalZJcjgifQ.lAePxvD4NjYzLRzx1rfKzdF5MNhQA-Oc5TPrzx85o2A'

在这里插入图片描述
下面是我的服务接收到的请求头
在这里插入图片描述

  • 生成签名还可以使用RS256 or ES256,这个可以参考官网

先写到这里了,有问题进QQ群630300475

发表评论

表情:
评论列表 (有 0 条评论,153人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Kong: ACL

    简述 这个插件使用控制谁可以访问,谁不能访问的。如果使用这个插件,就必须使用认证的插件了比如base-auth, key-auth等。拿base-auth举例: ...

    相关 KongJWT

    JWT的简述 JWT是JSON Web Token的缩写,使用cookie的解决跨域认证的问题,和cas系统是不一样的理论。具体可以看一下大神些的文档:http://...

    相关 Kong: hmac

    hmac简述 hmac是Hashing for Message Authentication的简写,可以用来保证数据的完整,客户端把内容通过散列/哈希算法算出一个摘要...