A企业和B企业要进行合作时,A要开放api接口给B调用,这时候A可以采用基于accessToken的方式实现开放api接口

数据库表设计

B调用方式

B企业调用接口前先获取accessToken

http://localhost:8080/auth/getAccessToken?appId=123456&appSecret=a1b2c3

然后调动真正的业务方法时携带accessToken

http://localhost:8080/openApi/getUser?accessToken=ac18deb132684f6c8cb2c01bd85f86aa

A企业具体实现

A企业设置accessToken过期时间为2小时,并且启动一个job定时刷新

A企业在拦截器里拦截所有的开放api接口,验证accessToken是否存在,是否过期,如果accessTokne存在并且没有过期就可以继续执行业务方法

@Component
public class AccessTokenInterceptor extends BaseApiService implements HandlerInterceptor {@Autowiredprivate BaseRedisService baseRedisService;public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o)throws Exception {System.out.println("---------------------开始进入请求地址拦截----------------------------");String accessToken = httpServletRequest.getParameter("accessToken");// 判断accessToken是否空if (StringUtils.isEmpty(accessToken)) {// 参数Token accessTokenresultError(" this is parameter accessToken null ", httpServletResponse);return false;}String appId = (String) baseRedisService.getString(accessToken);if (StringUtils.isEmpty(appId)) {// accessToken 已经失效!resultError(" this is  accessToken Invalid ", httpServletResponse);return false;}// 正常执行业务逻辑...return true;}public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o,ModelAndView modelAndView) throws Exception {System.out.println("--------------处理请求完成后视图渲染之前的处理操作---------------");}public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,Object o, Exception e) throws Exception {System.out.println("---------------视图渲染之后的操作-------------------------0");}// 返回错误提示public void resultError(String errorMsg, HttpServletResponse httpServletResponse) throws IOException {PrintWriter printWriter = httpServletResponse.getWriter();printWriter.write(new JSONObject().toJSONString(setResultError(errorMsg)));}}

项目结构:

github下载地址:https://github.com/jake1263/openApi

转载于:https://www.cnblogs.com/moris5013/p/11182849.html

API开放平台基于accessToken实现相关推荐

  1. B2B2C网上商城开发指南——基于SaaS和淘宝API开放平台

    B2B2C网上商城开发指南--基于SaaS和淘宝API开放平台邢波涛  郭  娟  著 ISBN 978-7-121-12983-4 2011年4月出版 定价:49.00元 16开 388 页 内 容 ...

  2. 移动云API开放平台助力开发者驰骋云端

    作者:中国移动云能力中心  --王仁喜 概要:本篇文章带你深入了解移动云API开放平台如何助力开发者驰骋云端. 初识移动云API开放平台 随着移动云业务的不断发展,用户对移动云被集成能力的要求越来越高 ...

  3. 【人工智能 Open AI】通用 API 开放平台的系统架构设计

    写一篇技术文章<通用 API 开放平台的系统架构设计>,分5个章节,细化到三级目录,不少于2000字.使用markdown格式输出. 文章目录 通用 API 开放平台的系统架构设计 一.前 ...

  4. 微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...

    1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过 ...

  5. 抖音api开放平台对接_抖音新增酒店预订等功能,一只脚踏进美团、携程腹地

    抖音虽拥有流量王牌,但一直苦于不能利用其带来最大化的商业变现.抖音也在不断地去尝试各种变现的可能性,本地生活就是其中的一个选项. 此前,抖音凭借重磅推出的"抖inCity城市美好生活节&qu ...

  6. 淘宝api开放平台SDK调用对接淘宝商品详情

    以下是获得淘宝商品详情 API 返回值说明.简单调用示例. 需要更多了解和测试调用请移步 http://console.open.onebound.cn/console/?i=Turbo 如果在淘宝/ ...

  7. 淘宝api开放平台买家卖家订单接口,python网络爬虫采集数据

    custom-自定义API操作 公共参数 请求地址: https://console.open.onebound.cn/console/?i=Anzexi 名称 类型 必须 描述 key String ...

  8. 淘宝api开放平台SDK调用对接淘宝或天猫

    如果在淘宝/天猫上开了网店,用户自己也有一套自己的管理平台,这时可能会考虑和淘宝进行数据对接.这就需要考虑调用阿里提供的开发接口来推送和接收数据. 对接的方式有2种,一种是通过http接口,另外一种是 ...

  9. 第三方应用APP唤起/调起 三大地图 百度/腾讯/高德 的 点/导航 安卓 和ios 带有三大地图的API开放平台地址

    三大地图  APP 判断     "com.baidu.BaiduMap      "com.autonavi.minimap      "com.tencent.map ...

  10. 互联网API开放平台安全设计-基于OAuth2.0协议方式

    基于OAuth2.0协议方式 什么是OAuth OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站 ...

最新文章

  1. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计
  2. 分享Kali Linux 2016.2第48周镜像文件
  3. ap统计学需要什么计算机,准备AP统计学考试不需要死背公式
  4. 3.2 python实战_线性回归的梯度下降法
  5. WebRTC 音视频开发之路
  6. 异常:没有找到本地方法库,java.lang.UnsatisfiedLinkError: no trsbean in java.library.path
  7. java包装模式_在Java8中包装设计模式
  8. Burpsuite爆破含CSRF-Token的程序
  9. unity烘培单个物体_Unity可编程渲染管线(SRP)教程:二、自定义着色器
  10. wpspbc按钮是什么意思_AC只是英文单词缩写,在科技领域常见的有三种意思
  11. Ubuntu 发布迁移手册,拉拢 Windows 7 用户
  12. 企业实战(2) 项目环境搭建之Tomcat部署
  13. mysql 拼接字符串查询
  14. 范浩强treap 普通平衡树
  15. 网络准入认证系统方案评估
  16. 国庆征文获奖名单公布
  17. NE555时基电路实验(二)NE555控制LED闪烁
  18. 陕西省2021年高考成绩位次查询,陕西高考排名查询方法,2021年陕西高考成绩位次全省排名查询...
  19. mysql sql dateadd_sql数据库dateadd
  20. 20160411_使用老毛桃破解电脑密码

热门文章

  1. 聊聊lettuce的sentinel连接 1
  2. 8Manage轻松解决采购过程“脏乱差”问题
  3. Linux下java进程CPU占用率高分析方法
  4. Bzoj 3339: Rmq Problem Bzoj 3585: mex 莫队,树状数组,二分
  5. #openssl #爆重大漏洞heartbleed,危及两亿网民!!!
  6. 升级到 MySQL 8.0,Facebook 付出的代价。。
  7. 大牛总结的 Git 使用技巧,写得太好了!
  8. SpringBoot 的事务管理
  9. 流量一天一个台阶,谈映客直播服务端架构优化之路
  10. 你并不在意的 HTTPS 证书吊销机制,或许会给你造成灾难性安全问题!