网站首页 > 技术文章 正文
因为HTTP协议是开放的,可以任人调用。所以,如果接口不希望被随意调用,就需要做访问权限的控制,认证是好的用户,才允许调用API。
目前主流的访问权限控制/认证模式有以下几种:
1),Bearer Token(Token 令牌)
定义:为了验证使用者的身份,需要客户端向服务器端提供一个可靠的验证信息,称为Token,这个token通常由Json数据格式组成,通过hash散列算法生成一个字符串,所以称为Json Web Token(Json表示令牌的原始值是一个Json格式的数据,web表示是在互联网传播的,token表示令牌,简称JWT)
JWT分为三部分:
第一部分:头部
{
"typ" : "JWT", (typ:类型)
"alg" : "HS256" (alg:算法,HS256表示哈希算法的mac值。SHA256/HmacSHA256,SHA256表示直接加密,HmacSHA256表示用秘钥进行加密。SHA(Secure[s??kj??(r)] Hash Algorithm [??lg?r?e?m],安全散列算法)
HMAC(Hash Message Authentication [?:?θent?'ke??n] Code,散列消息鉴别码))
}
第二部分(Claim正文部分)
{
"iss" : "joe",(issuer,发布者)
"exp": 1300819380,(expiration[?eksp??re??n] time 过期时间,毫秒数计算)
"http://example.com/is_root" :true(主题)
}
第三部分:签名(将上面的两个部分组合在一起+本地信息做的一个的签名(头部在前)
网络解释:签名是把header和payload(载荷)对应的json结构进行base64url编码之后得到的两个串,用英文句点号拼接起来,然后根据header里面alg指定的签名算法生成出来的。
https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-19
1,令牌的好处:避免在使用中不断的输入账号和密码,比较安全
2,如果要测试带token的接口,首先要进行登录,登录成功会有个token信息,向api接口发送请求的时候必须带上这个token,故需要做2次请求(1,登录,拿到token 2,正式对接口进行测试)
这个时候头部会多一个authorization
authorization可能在头部,也可能直接跟在请求行里面
http://www.xxx.com/ada?token=xxxxx
要么是用post请求,然后放在参数里面
3,注意点:
1),token一般有时间限制。测试前需要跟开发确认token可以用多久,什么时候算token失效
2),token放在哪儿,怎么传回去,需要有开发文档,或者咨询开发,登录成功返回的token需要了解从什么地方获取(可以通过录制进行查看)
猜你喜欢
- 2024-10-12 php 给app 或前端封装api 接口——json格式
- 2024-10-12 前端基础:vue中Axios的封装和API接口的管理
- 2024-10-12 Vue项目中实现用户登录及token验证
- 2024-10-12 前端开发:TypeScript 接口与泛型 接口使用泛型
- 2024-10-12 Java实战系列-前端VUE代码开发及接口流程设计(1)
- 2024-10-12 你还不了解typescript中接口和类型别名的用法区别?本文帮你总结
- 2024-10-12 前端开发:JavaScript API应用程序编程接口
- 2024-10-12 Java 中间的接口还可以这样用,你知道吗?
- 2024-10-12 Web前端接口画中画(Picture-in-Picture)介绍
- 2024-10-12 vue 项目接口管理 vue3接口
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)