当前位置: 首页 > news >正文

cookie、session、jwt、Oauth2.0、sso 分别有什么用

cookie、session、jwt都是 web 应用中的认证方式,最早只有 cookie,后面觉得所有数据存储在客户端不安全,就出现了 cookie-session,再后面有了 jwt。

cookie工作原理

cookie 数据存储在用户的本地。服务器完全根据 cookie 确定访问者是谁。

黑客可以获取 cookie 中的信息,例如用户名账号密码等信息。

session 工作原理

session需要和 cookie 进行配合。区别是cookie 需要在客户端存储所有详细信息。而 session 的认证方法,大多数敏感信息存储在服务端,只在客户端存储一个 sessionid 来代表用户的身份。这样子用户的敏感信息相对就得到了保护。

jwt-json web token

更像是一种完整性认证的方式。显示传递用户名,加密方式和秘文。这个密文只有服务端能解开。并且能够根据解开的结果判断是否被篡改。

后续服务端会将这段 jwt 发送给认证成功的用户,用户使用这一段 jwt 来代表用户自己的身份。

Oauth2.0

OAuth 2.0 是一种常用于授权的协议,它允许第三方应用程序在不暴露用户凭证的情况下,访问用户存储在资源服务器上的数据。它通常用于社交登录和授权场景,比如允许一个应用访问用户的Google或Facebook信息。OAuth 2.0 的认证过程涉及多个步骤和角色,下面是其基本流程:

角色:

  1. 资源拥有者(Resource Owner):即用户,拥有受保护的资源。
  2. 客户端(Client):需要访问资源的第三方应用程序。
  3. 授权服务器(Authorization Server):负责验证用户身份并发放访问令牌(Access Token)。
  4. 资源服务器(Resource Server):存储受保护的资源,并依赖访问令牌来授予访问权限。

OAuth 2.0 认证过程:

  1. 用户授权请求
    • 客户端授权服务器发送请求,要求代表用户访问其资源。此时,用户会看到授权请求,通常是在登录页面或授权页面上显示一个提示,要求用户确认是否同意授予该客户端访问权限。
  2. 用户同意授权
    • 资源拥有者(用户)查看客户端请求的权限范围,并选择是否同意。若用户同意,授权服务器生成一个授权码(Authorization Code),并将该授权码返回给客户端。
  3. 客户端请求访问令牌
    • 客户端收到授权码后,通过后端服务器向授权服务器发送一个请求,使用该授权码来交换一个访问令牌(Access Token)。在这个步骤中,客户端还会验证自己的身份(通过客户端ID和客户端密钥)。
  4. 授权服务器返回访问令牌
    • 授权服务器验证授权码和客户端身份后,返回访问令牌(有时还包括刷新令牌),该令牌允许客户端在一段时间内访问用户的资源。
  5. 客户端使用访问令牌访问资源
    • 客户端使用获得的访问令牌,向资源服务器发起请求,访问用户的受保护资源。资源服务器会检查该访问令牌的有效性,如果验证通过,则允许访问资源。
  6. 刷新访问令牌(可选)
    • 访问令牌通常有有效期,当令牌过期时,客户端可以使用刷新令牌(如果有)向授权服务器请求新的访问令牌,而无需再次请求用户授权。

SSO

所有受保护的应用都依赖于同一个SSO认证服务器来进行身份认证。只要用户在SSO认证服务器登录,认证服务器会生成一个通用的认证信息(如令牌或SAML断言),任何依赖SSO认证服务器的应用都可以基于这个令牌或断言确认用户的身份。

相关文章:

  • 『大模型笔记』怎样让Ollama启动的大模型常驻内存(显存)?
  • 2.1 统计语言模型:AI自然语言处理的奠基者与演进启示录
  • 【6】阿里面试题整理
  • 嵌入式知识点总结 网络编程 专题提升(一)-TCP/UDP
  • 快速上手——.net封装使用DeekSeek-V3 模型
  • 二十八、vue项目预览pdf文档示例
  • 算法与数据结构(多数元素)
  • 数据可视化+SpringBoot+协同过滤推荐算法的美食点餐管理平台
  • 消息队列之-springcloud-mq-stream 学习
  • 开发基础(8):鸿蒙图表开发
  • C++之线程池(Thread Pool)
  • 数智化时代的工单管理:从流程驱动到数据驱动-亿发
  • 【测试开发】Python+Django实现接口测试工具
  • DeepSeek自动批量写作的AI软件
  • WIN11上使用GraalVM打包springboot3项目为本地可执行文件exe
  • 笔试-士兵过河
  • android 的抓包工具
  • Vue 入门到实战 十
  • 【算法】【位运算】acwing算法基础 801. 二进制中1的个数
  • 计算机毕业设计PySpark+Hadoop+Hive机票预测 飞机票航班数据分析可视化大屏 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计
  • 中国乒协坚决抵制恶意造谣,刘国梁21日将前往多哈参加国际乒联会议
  • 蚊媒传染病、手足口病……上海疾控发布近期防病提示
  • “大鼻子情圣”德帕迪约因性侵被判缓刑,还有新的官司等着他
  • 中国-拉共体成员国重点领域合作共同行动计划(2025-2027)
  • 人才争夺战,二三线城市和一线城市拼什么?洛阳官方调研剖析
  • 俄土外长通话讨论俄乌谈判问题