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

栏目: 软件资讯 · 发布时间: 3年前

内容简介:TokenManager V0.0.1版本 TokenManager是一款基于Java开发的Springboot组件,用于管理自身平台以外的三方Token。 TokenManager将全场景的远程调用获取Token抽象到TokenManager接口中,通过调用指定的API实现各类三...

TokenManager V0.0.1版本

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

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

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

TokenManager原理图如下所示:

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

开发者:marker

TokenManager特性

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

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

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

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

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

更新日志

2021-08-16 新版本发布;

快速开始

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

服务:127.0.0.1:6379
密码:123456

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

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

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

TokenAPI

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

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

Springboot配置内容

spring:
  ## 三方Token管理器
  token-manager:
    enabled: true
    # redis链接地址
    host: ${TOKEN_REDIS_HOST:192.168.1.6}
    # redis密码
    password : ${TOKEN_REDIS_PASSWORD:xxx}
    # redis数据索引 默认14
    database : ${TOKEN_REDIS_DB:13}
    port: ${TOKEN_REDIS_PORT:6379}
    lettuce:
      #在关闭客户端连接之前等待任务处理完成的最长时间,在这之后,无论任务是否执行完成,都会被执行器关闭,默认100ms
      shutdownTimeout: 100
      pool:
        # 连接池最大连接数(使用负值表示没有限制)
        maxActive: 50
        # 连接池中的最大空闲连接
        maxIdle: 10
        # 连接池中的最小空闲连接
        minIdle: 9
        # 连接池最大阻塞等待时间(使用负值表示没有限制)
        maxWait: -1
    # Token管理器多实例配置
    configMap:
      # 微信Token接口配置
      weixinMp:
        type: WEIXIN
        appid: wx03698c0a99f50cfb
        appsecret: 82aee19d923384fcda0be1ad9f23619c
        offsetTime: 60

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解Java多线程设计模式

图解Java多线程设计模式

[日] 结城浩 / 侯振龙、杨文轩 / 人民邮电出版社 / 2017-8 / 89.00元

本书通过具体的Java 程序,以浅显易懂的语言逐一说明了多线程和并发处理中常用的12 种设计模式。内容涉及线程的基础知识、线程的启动与终止、线程间的互斥处理与协作、线程的有效应用、线程的数量管理以及性能优化的注意事项等。此外,还介绍了一些多线程编程时容易出现的失误,以及多线程程序的阅读技巧等。在讲解过程中,不仅以图配文,理论结合实例,而且提供了运用模式解决具体问题的练习题和答案,帮助读者加深对多线......一起来看看 《图解Java多线程设计模式》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具