接口鉴权,提供给第三方调用的接口,进行sign签名
//场景:公司要跟第三方公司合作,提供接口给对方对接,这样需要对接口进行授权,不然任何人都可以调我们公司的接口,会导致安全隐患: 思路: 在每个接口请求参数都带上ApiKey 和sign签名:
我们在对接前,给对方提供一个ApiKey 和密码secrect,这2个值随便自己定义,只要双方都约定好就行了: 对方要做的事情: 对请求参requestDTO 除sign签名字段外,转成JSON字符串,
然后前后拼上secrect,再MD5加密得到sign签名:
伪代码:
String reqStr=JSON.toJSONStirng(requestDTO);
StringBuilder sb = new StringBuilder();
sb.append(BeeBoxConstant.SECRET);
sb.append(json);
sb.append(BeeBoxConstant.SECRET);
String sign = Md5Util.getMd5(sb.toString());
requestDTO.setSign(sign);
注意:requestDTO不能将密码也带过去 我们要做的事情: 拿到对方请求参数:requestDTO
获取sign值和apiKey:
String sign=requestDTO.getSign();
String apiKey=requestDTO.getApiKey();
通过apikey去获得密码secrect,因为apikey和密码是我们提供的,所以肯定知道在哪里获取; 之后请求对象设置sign值为null:
requestDTO.setSign(null);
转成JSON,然后按同样的方式生成sign签名: String reqStr=JSON.toJSONStirng(requestDTO);
StringBuilder sb = new StringBuilder();
sb.append(BeeBoxConstant.SECRET);
sb.append(json);
sb.append(BeeBoxConstant.SECRET);
String sign2 = Md5Util.getMd5(sb.toString());
比较对方传过来的sign值和我们计算得到的sign2是不是一致,一致签名验证就通过,不一致签名就是失败;
接口鉴权,提供给第三方调用的接口,进行sign签名的更多相关文章
- EasyNVR摄像机网页H5全平台无插件直播流媒体播放服务二次开发之接口鉴权示例讲解
		
背景需求 EasyNVR的使用者应该都清楚的了解到,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理可以 ...
 - 项目API接口鉴权流程总结
		
权益需求对接中,公司跟第三方公司合作,有时我们可能作为甲方,提供接口给对方,有时我们也作为乙方,调对方接口,这就需要API使用签名方法(Sign)对接口进行鉴权.每一次请求都需要在请求中包含签名信息, ...
 - 接口鉴权之sign签名校验与JWT验证
		
需求描述: 项目里的几个Webapi接口需要进行鉴权,同接口可被小程序或网页调用,小程序里没有用户登录的概念,网页里有用户登录的概念,对于调用方来源是小程序的情况下进行放权,其他情况下需要有身份验证. ...
 - laravel JWTAuth实现api接口鉴权(基础篇)
		
官网:https://jwt-auth.readthedocs.io 参考:https://learnku.com/articles/10885/full-use-of-jwt#99529f 1.to ...
 - HiMall 3接口鉴权参考
		
签名算法 为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,HOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝.TOP目前支持的签名算法只有一种:MD5(s ...
 - Ant Design Pro 鉴权/ 权限管理
		
https://pro.ant.design/docs/authority-management-cn ant-design-pro 1.0.0 V4 最近需要项目需要用扫码登录,因此就使用antd ...
 - YAPI接口自动鉴权功能部署详解
		
安装准备 以下操作,默认要求自己部署过yapi,最好是部署过yapi二次开发环境. 无论是选择在线安装或者是本地安装,都需要安装client工具. 1.yapi-cli:npm install yap ...
 - 全栈项目|小书架|微信小程序-登录及token鉴权
		
小程序登录 之前也写过微信小程序登录的相关文章: 微信小程序~新版授权用户登录例子 微信小程序-携带Token无感知登录的网络请求方案 微信小程序开通云开发并利用云函数获取Openid 也可以通过官方 ...
 - 钉钉JSAPI前端鉴权
		
钉钉二次开发分为如下表所示三种类型的开发,只有企业内部应用才需要对JSAPI鉴权. 类型 开发方式 JSAPI鉴权 应用场景 第三方企业应用 E应用开发 不需要 用于发布到钉钉应用市场,供广大用户下载 ...
 
随机推荐
- Windows Server 2012 两台服务器文件同步
			
下载cwRsyncServer软件安装(这是Windows下的文件同步软件) 一.(1)在文件客户端服务器安装该软件,找到安装位置下的rsyncd.conf,修改配置文件(注意在Windows下输入位 ...
 - 力扣Leetcode 45. 跳跃游戏 II - 贪心思想
			
这题是 55.跳跃游戏的升级版 力扣Leetcode 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃 ...
 - echarts  画折线的一些需要去改动的地方
			
1.客户想要去要制定特定线条的样式(比如:颜色) 2.要去自定义改变后端传 的数值不合理的地方,在tooltiop中去展示出来 后续持更.....
 - Mysql表,列,库的增删查改
			
下面是我总结的一些基础的sql知识,主要是为了以后更好的查阅和帮助其他初学的人,同时记录自己的成长,还写了一点稍有难度的sql面试题级别的题目,好了废话不多说,见真题... #创建数据库 CREATE ...
 - JS 进制转换的理解
			
该事情的由来是来自于一个面试题,题目是这样的,[1,2,3].map(parseInt)的结果是什么? 作为菜鸟的我们一定是觉得分别把1,2,3分别交给parseInt,无非就是1,2,3嘛.其实结果 ...
 - 编写第一个 .NET 微服务
			
介绍 本文的目的是:通过创建一个返回列表的简单服务,并在 Docker 容器中运行该服务,让您熟悉使用 .NET 创建微服务的构建过程. 安装 .NET SDK 要开始构建 .NET 应用程序,首先下 ...
 - 小程序开发-使用xpath解析网页html中的数据
			
最新有个微信小程序的开发需求,需要从网页中提取一些元素信息,获取有效数据 1. 了解到微信小程序里面不能直接操作dom元素,所以我们需要使用一些其他的npm包 2. 经过查到各方面的文档,最新决定用x ...
 - 剑指 Offer 56 - II. 数组中数字出现的次数 II
			
题目描述 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. 示例1: 输入:nums = [3,4,3,3] 输出:4 示例2: 输入:nums = ...
 - ZT:C/C++ 字符串与数字相互转换
			
转载地址:https://www.cnblogs.com/happygirl-zjj/p/4633789.html 一.利用stringstream类 1. 字符串到整数 stringstre ...
 - leetcode刷题-80.删除排序数组中的重复项 II
			
题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. ...