场景

  • 提供的api接口需要验证使用者身份的合法性

流程

  • 由api使用者(简称用户端)向api提供者(服务端)申请一组public key/secret key
  • 用户端在调用接口请求时,携带上data、public key、salt、由data salt secret key 生成的摘要(可以使用sha1、md5等摘要算法),通过api接口发送给服务端
  • 服务端根据public key在DB中搜索到对应的secret key,使用同样的摘要算法计算摘要,对比2个摘要,可验证请求者的身份和数据的完整性

例如

  • 可以在http接口的header中设定一下字段

    • Auth-ApiKey
    • Auth-Sign
    • Auth-TimeStamp(salt)
  • Auth-Sign的生成
sign = sha1(data+secret key + salt)
  • data放入body
  • 服务端还可以根据timestamp做一些时效性控制

apikey、apisecret在api请求中的使用相关推荐

  1. API设计中性能提升的10个建议

    [引子]节前的时候, 一好友约我聊一聊API 的设计.当时觉得仿佛有万语千言,但我又难以脱口而出1.2.3.原来,即便是工作的日常,也缺乏一个系统性的思考和整理.API的设计涉及到的方面很多, 分类是 ...

  2. Tornado的同步API写法举例实现GET/POST/DELETE请求+Tornado获取post请求中的json数据(转载)

    下面的实验主要来自[1][2],但是对实验2的代码进行了修改,修改过程参考了[3] #---------------------------------------------------实验1--- ...

  3. java string 包含http_Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)...

    一.HttpPost上传文件 public static String getSuffix(final MultipartFile file){ if(file == null || file.get ...

  4. 【Web API系列教程】1.2 — Web API 2中的Action Results

    前言 本节的主题是ASP.NET Web API怎样将控制器动作的返回值转换成HTTP的响应消息. Web API控制器动作能够返回下列的不论什么值: 1. void 2. HttpResponseM ...

  5. v3 微信api 请求微信_企业微信API使用基本教程

    在企业微信创建自建应用 1.登录企业微信后台,在"应用管理>自建"中点击"创建应用",填写应用信息创建. API配置表参数值获取 1.corpid:企业I ...

  6. vue.js与ajax删除,javascript - VueJs和VueResource,从Ajax请求中删除标头字段 - 堆栈内存溢出...

    当实例化Vuejs (2.2.6)和Vue-resource (1.2.1)时 ,我使用以下代码设置标头授权,通过这种方式,我可以将所有请求授权给我的API: Vue.http.headers.com ...

  7. 微软宣布在Azure API管理中预览OpenAPI规范V3

    最近,微软宣布在Azure API管理中支持OpenAPI规范V3,他们的服务允许创建.发布.监控和维护API.OpenAPI规范的使用是通过 OpenAPI .NET SDK完成的,并支持从它们的实 ...

  8. Web容器自动对HTTP请求中参数进行URLDecode处理

    这篇文章转载自 : Web容器自动对HTTP请求中参数进行URLDecode处理 如题,在Java中也许很多人都没有注意到当我们发送一个http请求时,如果附带的参数被URLEncode之后,到达we ...

  9. API设计中防重放攻击

    HTTPS数据加密是否可以防止重放攻击? 否,加密可以有效防止明文数据被监听,但是却防止不了重放攻击. 防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击.重放攻击是什么呢?就是把你 ...

最新文章

  1. 干货丨从线性回归到无监督学习,数据科学家需要掌握的十大统计技术
  2. 总结整理Matlab的plot函数用法
  3. 【安全漏洞】CVE-2020-26567 DSR-250N 远程拒绝服务漏洞分析
  4. 强大的代码扫描工具SonarLint之安装使用
  5. 09.ws复杂数据类型数据传输
  6. SAP License:SAP合同类型的使用
  7. python 前端开发_python和前端开发怎么抉择?
  8. OpenGL--天空盒
  9. AI在医疗领域的应用 | “AI+传统行业”全盘点
  10. 解决打开一个excel文件,却出现两个窗口的办法
  11. 快速查询快递单号物流的方法有哪些?
  12. 互联网公司的几种销售模式
  13. 什么是用户代理样式表
  14. oracle 求一年多少天,SQL 计算一年有多少天
  15. 启明创投邝子平谈禾赛上市:做硬科技领域长线投资人
  16. FPGA Vivado设计流程
  17. INSERT DESC UPDATE SELECT
  18. 群机器人积分怎么转赠_王者荣耀全员冲榜无法获得积分怎么办?全员冲榜积分规则...
  19. win10默认浏览器不显示谷歌浏览器_win10系统下google浏览器无法打开网页的解决方法...
  20. 橘子平台origin安装闪退?

热门文章

  1. 什么原因导致了儿童自闭症?跟父母养育有关吗?
  2. 我的组会内容分享(部分)CDR+CTLE+DFE
  3. js实现局部刷新数据
  4. java手机版头文字d_头文字D THE ARCADE
  5. 独家思维导图!让你秒懂李宏毅2020机器学习(二)—— Classification分类
  6. 中国AI觉醒 阿里王坚:云智能将成为大趋势
  7. ubuntu20.04 外接显示器检测不到 未知的显示器 显卡安装黑屏 解决方案
  8. 阿里云IoT平台APP配网入口
  9. 平台电子签章实现方法
  10. 血污夜之仪式秘密巫师实验室收集策略