| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 详解 http 鉴权 -> 正文阅读 |
|
[网络协议]详解 http 鉴权 |
详解 http 鉴权前端开发登录鉴权方案完全梳理 🌟🌟🌟
概念明确:
通常四者的关系是:认证 --> 授权 --> 鉴权 --> 权限控制 在不涉及权限控制的系统中,一般到鉴权这一步就能拿到数据。 下面讲集中常用的鉴权方式: Basic auth在 header 头中加入 ‘Authorization: Basic dXNlcjE6MTIzNDU2’,其中 dXNlcjE6MTIzNDU2 是 user1:123456 base64 编码之后的结果, 其为用户名密码,这种方式非常简单且极易被破解,仅做了解。 使用方式:
Session-cookie概念: cookie: 服务端下发给浏览器端的数据,浏览器每次发送请求都会携带这段数据
session: 服务端保存生成的 session 信息,客户端在收到 session 信息后会在下次请求时带上 session_id,服务端查找到对应的会话信息来持续之前断掉的会话,cookie 和 session 都弥补了 http 是个无状态协议这一特点。与 cookie 的区别如下:
时序图: 使用 session-cookie 鉴权的时序图如下:
优势:
缺点:
使用方式:
使用场景:
token时序图: 使用 token 鉴权的时序图 和 session-cookie 的区别在于:token 是 session-cookie 的升级版
优点:
缺点:
refresh token概念
Access Token: 用来访问业务接口,由于有效期足够短,盗用风险小,也可以使请求方式更宽松灵活; Refresh Token: 用来获取 Access Token,有效期可以长一些,通过独立服务和严格的请求方式增加安全性;由于不常验证,也可以如前面的 Session 一样处理;一般如果 refresh Token 也过期了则需要重新登录。 JWT json web token概念: 对 JSON 进行加密签名来实现授权验证的方案 组成:
其中 secret 是一个密钥,只有服务器知道,不会泄露给用户,使用的签名算法是 header 中指定的,默认即 HMAC SHA256 优势:
缺点:
时序图: 使用方式:
通常将 jwt 存储在 localStorage 中 使用场景: 不需要服务端保存用户状态的场景。但通常如果考虑到 token 注销的场景的话,没有特别好的解决方案,大部分解决方案是给 token 加状态,比如为每个用户创建专属 secret 有点类似于 session-cookie 认证了,对于续签的问题可以通过每次请求都返回新的 token 的方式或即将过期的时候服务端即重新颁发新的给客户端。 总结 jwt 的做法其实我们可以借鉴做一下 jwt 的变形,比如 header 中使用如下验证方式:
SSO single sign-on概念: 多系统应用群中登录单个系统即可在其他系统中获得授权无需再次登录其他系统即可使用。 同域 SSO当存在两个相同域名下的系统 A
这实际上使用的就是 Session-Cookie 认证的登录方式。 跨域 SSO由于跨域,cookie 不能共享了,比如我们登录了 taobao.com 希望同时能登上 tmall.com saml 协议SAML Web SSO学习 🌟🌟🌟 概念: saml security assertion markup language: 安全断言标记语言 SP service provider:服务提供方,如阿里云控制台、aws 控制台等 IdP identity provider: 身份提供方,能够向 SP 发送身份断言,即标识某个人身份的 token,且在 saml 协议中其为 xml 形式 通常 SP 和 IdP 互相存着对方的 MetaData 组成:
时序图: OAuth2.0
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/12 3:05:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |