当前位置: 首页 > news >正文

JSAAS 平台实现 微信类似的TOKEN机制

 

在企业微信中,我们在调用微信接口时,我们需要首先获取token,然后根据token,调用API接口方法。这个token是有生命周期的,微信的token默认的生命周期是7200秒。

因此这个token可以保证平台被安全的客户端调用。

JSAAS也需要API接口调用,在平台中JSAAS也实现了类似的接口API接口。

实现方式

1.注册子系统

产生ACCESSTOKEN接口

平台中提供了产生API接口的方法

接口地址:

http://localhost:8080/jsaas/restApi/token/genToken

传入参数:

appId: 应用ID

secret: 密钥

返回数据:

成功返回:

{success:true,data: token}

失败返回:

{success:false,message: "错误信息"}

使用postman测试:

 

调用接口

 在平台中配置  spring-security.xml 

这个配置只有上面的URL 接口需要使用token 进行调用。

 

写一个测试API接口方法。

@RequestMapping(value = "testToken",method={RequestMethod.POST})
    @ResponseBody
    public JsonResult test(HttpServletRequest request) throws Exception {
        String token=request.getHeader("token");
        String appId=AppTokenUtil.getAppId(token);
        return new JsonResult<>(true, token +"," + appId);
    }

客户端调用时,根据上面生成的token,访问api接口。

根据上面的代码可以看到,token 是通过 http头进行传递的,我们可以根据 token 获取appid,表示当前接口为那个应用。

String appId=AppTokenUtil.getAppId(token);

我们可以看到 我们可以通过token 进行访问,如果token过期或者传入错误的token,我们看下测试用例。

 

相关文章:

  • kafka集群Controller竞选与责任设计思路架构详解-kafka 商业环境实战
  • Linux C编程之一:Linux下c语言的开发环境
  • 写给高年级小学生看的《Bash 指南》
  • Windows10下 tensorflow-gpu 配置
  • 前端模板技术面面观(2)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 操作系统-进程控制
  • 区块链在刚刚领域引起行业革新
  • pages bookmarks for machine learning domain
  • 2019年值得关注的八大DevOps趋势
  • JS 日期转换,格式化等常用的函数定义
  • AlphaZero进化论:从零开始,制霸所有棋类游戏
  • 一个程序员的自白(危机可导)
  • golang 学习笔记 ---数组/字符串/切片
  • 整数规划---割平面解法
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • fetch 从初识到应用
  • gitlab-ci配置详解(一)
  • Golang-长连接-状态推送
  • Java反射-动态类加载和重新加载
  • js学习笔记
  • Unix命令
  • Zepto.js源码学习之二
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 机器学习中为什么要做归一化normalization
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 数组的操作
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • ​MySQL主从复制一致性检测
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • (10)STL算法之搜索(二) 二分查找
  • (C语言)二分查找 超详细
  • (多级缓存)多级缓存
  • (分类)KNN算法- 参数调优
  • (十) 初识 Docker file
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)EXC_BREAKPOINT僵尸错误
  • ..回顾17,展望18
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .md即markdown文件的基本常用编写语法
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .Net的C#语言取月份数值对应的MonthName值
  • /etc/fstab 只读无法修改的解决办法
  • @Resource和@Autowired的区别
  • @TableLogic注解说明,以及对增删改查的影响
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ IO.File ] FileSystemWatcher
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [20181219]script使用小技巧.txt
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [ABC294Ex] K-Coloring
  • [Android]一个简单使用Handler做Timer的例子