一、摘要

在实际的业务开发过程中,我们常常会碰到需要与第三方互联网公司进行技术对接,例如支付宝支付对接、微信支付对接、高德地图查询对接等等服务,如果你是一个创业型互联网,大部分可能都是对接别的公司api接口。当你的公司体量上来了时候,这个时候可能有一些公司开始找你进行技术对接了,转变成由你来提供api接口,那这个时候,我们应该如何设计并保证API接口安全呢?

二、方案介绍

最常用的方案,主要有两种:

  • token方案
  • 接口签名

2.1、token方案

其中 token 方案,是一种在web端使用最广的接口鉴权方案,我记得在之前写过一篇《手把手教你,使用JWT实现单点登录》的文章,里面介绍的比较详细,有兴趣的朋友可以看一下,没了解的也没关系,我们在此简单的介绍一下 token 方案。

从上图,我们可以很清晰的看到,token 方案的实现主要有以下几个步骤:

  • 1、用户登录成功之后,服务端会给用户生成一个唯一有效的凭证,这个有效值被称为token
  • 2、当用户每次请求其他的业务接口时,需要在请求头部带上token
  • 3、服务端接受到客户端业务接口请求时,会验证token的合法性,如果不合法会提示给客户端;如果

Java基础学习总结(180)——如何保证API接口安全相关推荐

  1. Java基础学习总结(165)——API 安全最佳实践

    虽然本质上 API 就是拿来用的,但即便某个 API 的使用者全是内部人员,它还是可能会出现安全问题.为了解决 API 安全问题,在本文我们收集了一系列 API 的最佳实践,希望你记住这些 Tips ...

  2. Java基础学习(9)

    Java基础学习 一.常用方法(API) 1.1 Math 1.2 System 1.3 Runtime 1. 4 .object 1.5 Objects 1.6 BigInteger BigInte ...

  3. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  4. Java基础学习——第十四章 网络编程

    Java基础学习--第十四章 网络编程 一.网络编程概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信 ...

  5. Java 基础学习-Java语言概述

    Java 基础学习 第一章 Java语言概述 回顾java基础知识,进行整理记录. 文章目录 Java 基础学习 前言 一. Java语言发展史(了解) 二.Java语言跨平台原理(理解) 三.JRE ...

  6. java基础学习-6

    Java基础学习-6 双列集合 Map的常见API Map的遍历方式 HashMap 小练习 LinkedHashMap TreeMap TreeMap--小练习1 TreeMap--小练习2 Tre ...

  7. JAVA基础学习精简心得笔记整理

    JAVA基础学习精简心得笔记整理 配置java环境变量 Java的运行过程  基本数据类型 引用数据类型 逻辑运算符 数组 方法重载 封装 继承 多态 多态的作用 单例设计模式 接口interface ...

  8. 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结

    Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...

  9. Java基础学习:尚硅谷项目三 开发团队调度软件

    Java基础学习:尚硅谷项目三 开发团队调度软件 一.软件功能与结构设计 1. 软件功能 该软件实现以下功能: 软件启动时,根据给定的数据创建公司部分成员列表(数组) 根据菜单提示,基于现有的公司成员 ...

最新文章

  1. java 与 c#的 中 字符串比较“==”与“equals”的差异
  2. 公司新来的小可爱,竟然把内存搞崩了!
  3. keras构建卷积神经网络_通过此简单教程学习在网络上构建卷积神经网络
  4. Redmi K40游戏增强版首发雷电异形闪光灯:电竞气息十足!
  5. php中global什么意思,php中global与$GLOBAL的用法及区别(转载)
  6. matlab subplot(figure)如何设置使得图像最终显示出来不一样大小
  7. 杀死提交的hadoop任务
  8. Scala中的下划线使用总结
  9. mac小技巧——快速修改图片尺寸
  10. 二倍图三倍图什么意思_iOS开发中的二倍图、三倍图
  11. Windows 10 无法访问共享的解决办法
  12. 三角形边长求高的c语言函数公式,各种三角形边长的计算公式-三角形三边公式...
  13. 一文搞懂this指向
  14. 如何优化网站才能让网站打开速度更快
  15. android+注册+代码,简单的Android用户注册登录实现
  16. Vue前端开发——微信扫码支付
  17. 《LeetCode刷题》—121. 买卖股票的最佳时机
  18. ACK((Acknowledge character)应答机制(kafka)
  19. 基于树莓派的微型气象台
  20. LeetCode(跳跃游戏)

热门文章

  1. 求n!的算法和C 实现
  2. linux下mkdir头文件_Linux中mkdir函数与Windows中_mkdir函数的区别
  3. 力扣347. 前 K 个高频元素(JavaScript,堆)
  4. android 手机 与 python服务器_python服务器与android客户端socket通信实例
  5. drawlinetest.java_Java Graphics2D.setRenderingHint方法代碼示例
  6. 时槽越大越好吗_买桃子是“越大越好”吗?老果农:教你一招,保准桃子又甜又好吃...
  7. 设置android 触摸灵敏,3D Press触屏灵敏度设置教程 魅族PRO 6 3D Press触控力度怎么调...
  8. 远程下层文档 正在打印_长宁打印机随叫随到,送货上门
  9. flash小黄油安卓_99%安卓被这个小破软件给干了?拥有它!Google直呼内行!
  10. php对pdf关键字定位,如何在PDF文件中快速查找关键字