TokenManager 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
TokenManager 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
TokenManager 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 管理和监控安全相关
开源组织
地区 国产
投 递 者 marker
适用人群 未知
收录时间 2021-08-16

软件简介

TokenManager是一款基于Java开发的Spring Boot组件,用于管理自身平台以外的三方平台Token。

TokenManager将全场景的远程调用获取Token抽象到TokenManager接口中,通过调用指定的三方TokenAPI 实现各类三方平台的Token的管理。

TokenManager通过Redis的消息订阅特性实现了延时消息监听Token生命周期过期时间,从而自动刷新Token。 确保在高并发请求下,用户不会调用具体的三方接口实时获取Token。

TokenManager 默认实现了WEIXIN微信平台的accessToken(非用户授权码token)

TokenManager原理图如下所示:

 

TokenManager特性

  • 多环境Token共享 例如:调试微信,获取appid+secrt换取accessToken,在开发环境和测试环境共用或不共用appid的情况下,可配置Token共享。

  • 自动刷新accessToken 支持基于Oauth2协议的刷新Token机制,无需干预自动刷新,最佳的管理方式,提高接口响应速度。

  • 多级缓存(待实现) 支持本地缓存与远程缓存。本地缓存JVM级别的,远程缓存基于Redis。提高Token的访问速度,防止Redis击穿雪崩。 本地缓存的生命周期动态管理。

  • 可扩展 支持扩展现有的API实现,能够支持除了微信以外的其他平台。采用自动装配技术,实例动态注入到Spring容器中。

  • 支持请求日志拦截 通过RestTempalte 拦截器实现了请求日志拦截,默认实现了请求Slf4j的info级别日志。可以自定义配置个性化的拦截实现。

快速开始

准备好Redis-server,服务IP与端口还有密码

服务:127.0.0.1:6379
密码:123456

如果您没有Redis服务环境,推荐使用Docker部署测试。

在您的项目中pom.xml加入maven依赖:

<!-- 开发者:marker 三方Token管理器 -->
<dependency>
    <groupId>com.wuweiit</groupId>
    <artifactId>token-manager</artifactId>
    <version>0.0.2</version>
</dependency>

Springboot配置内容


spring:
  ## 三方Token管理器
  token-manager:
    # TokenManager自动装配开关
    enabled: true
    # redis链接地址
    host: ${TOKEN_REDIS_HOST:127.0.0.1}
    # redis密码
    password : ${TOKEN_REDIS_PASSWORD:123456}
    # redis数据索引 默认15
    database : ${TOKEN_REDIS_DB:14}
    port: ${TOKEN_REDIS_PORT:6379}
    # Token管理器多实例配置
    configMap:
      # 微信Token接口配置,自动注入Bean weixinTokenManager 
      weixin:
        type: WEIXIN
        appid: xxxxx
        appsecret: xxxxx

TokenAPI设计简介

TokenAPI 提供了获取Token和刷新token两种接口,参数包含SecretConfig和Map,这里使用Map的原因是我们不能确定获取Token需要c端用户传递哪些数据字段,因此使用Map会较为通用的方式。

TokenManager会通过类型自动判断调用那个接口实现,当然我们也可以采用策略模式直接设置TokenAPI到TokenManger实例里。

通过时间偏移量来防止本地token过期,提前刷新Token。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
2021/11/06 17:45

TokenManager 0.0.2 发布:新增隔离环境配置

TokenManager是一款基于Java开发的Spring Boot组件,用于管理 三方平台的Token的中间件。 TokenManager将全场景的远程调用获取Token抽象到TokenManager接口中,通过调用指定的三方TokenAPI 实现各类三方平台的Token的管理。 TokenManager通过Redis的消息订阅特性实现了延时消息监听Token生命周期过期时间,从而自动刷新Token。 确保在高并发请求下,用户不会调用具体的三方接口实时获取Token。 TokenManager 默认实现了WEIXIN微...

1
16
发表了资讯
2021/08/16 20:35

TokenManager 0.0.1 发布:支持三方 Token 托管

TokenManager V0.0.1版本 TokenManager是一款基于Java开发的Springboot组件,用于管理自身平台以外的三方Token。 TokenManager将全场景的远程调用获取Token抽象到TokenManager接口中,通过调用指定的API实现各类三方系统的Token的管理。 通过Redis的消息订阅特性实现了延时消息监听Token生命周期过期时间,从而自动刷新Token。 确保在高并发请求下,用户不会调用具体的三方接口实时获取Token。 TokenManager原理图如下所示: 开...

0
10
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
7 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部