有状态的踢出、拉黑。必然要操作数据。没法像jwt一样无状态。
gateway oauth数据库模式应该可以。没去研究这里只是结合kong去实现。
思路:
kong的authenticatedUserid字段可以映射为userId + bearer + jwt以jwt作为shiro认证的头信息。
此时从kong网关过来的头信息应为
x-authenticated-userid
把shiro认证头信息改为这个。
然后每次经过登陆。refreshToken的时候有状态地去查询kong数据库。
kong的oauth为全局插件。特别添加匿名用户也是可以通过oauth的。此时要有一个双重认证,即kong oauth + shiro jwt。
注意:kong数据库为postgresql。如果要使用该库。要么单独做一个postgresql微服务单独连接。要么动态切换数据源。
只是想利用kong作为网关,不想做额外配置。不然刷新token的操作,即使自己建立一个拥有refreshToken的jwt表也是可以实现操作的。
扫一扫访问 Blade技术社区 移动端