API Gateway/API 网关(四) - Kong的使用 - 集成Jwt和熔断插件

一、前言

使用Kong中的JWT插件需要先在Kong的Consumers中创建一个Consumer,然后在该Consumer的Credentials中设置JWT的key和secret。

 

假定在3个项目组中共用一个单点登录模块的这么一个场景,使用Kong网关来对JWT Token进行拦截。

  • A项目组负责单点登录

 /api/user   提供登录,登出的接口

  • B项目组负责APP1

/api/app1   应用1

/api/common/app1   不需要登录的查询页面

  • C项目组负责APP2

/api/app2   应用2

/api/common/app2   不需要登录的查询页面

 

Kong网关不对/api/user,/api/common进行JWT Token拦截,只对/api/app1,/api/app2进行JWT Token拦截

用户登录时调用/api/user/login接口验证用户名和密码,验证通过后系统将userid和mobile写入到JWT Token中,并以该Token为KEY放入redis中。

用户端登录后把JWT Token放入HTTP Header中,请求/api/app1或者/api/app2的应用接口,如果JWT Token无效或过期,在Kong网关就被拦截了,不会调用到后端的/api/app1或是/api/app2的应用接口。

app1或是app2接收到请求后,先读取出HTTP Header中的Authorization值(即:Bearer + 1个空格+Token),然后读取本项目中的redis,如果没找到数据就调用A项目组的远程接口(各个项目组有自己的DB,不可以互相访问其他项目的DB,只能通过远程接口来进行访问),出于安全性考虑,B和C项目组没有密钥,无法对Token进行解析,只有A项目组才能从Token中解析出UserID和Mobile。

Kong网关中没有找到这样的功能:自动解析Token中的UserID和Mobile,添加到Header后再调用后端的应用ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值