会话管理 - 弄清楚前后端接口 Cookie、Session、Token 的区别

本文深入探讨了Cookie、Session和Token在会话管理中的应用,特别是它们的实现原理和区别。通过阅读相关文档和实践,了解到简单登录系统可以基于服务端存储(Session)或客户端存储(JWT)实现。文中强调了技术本质的理解对于合理选择和使用的重要性,并指出JWT常用于分布式系统的单点登录。此外,还分享了如何自己实现一个简单的认证系统,增强了对会话管理技术的掌握。
摘要由CSDN通过智能技术生成

1.应用场景 

主要用于弄清楚, 会话管理中的机制, 登录认证的实现原理, 以及各种技术的本质区别, 从而进行合适合理的高效编程实现.

2.学习/操作

图片

1.文档阅读

傻傻分不清,前后端接口 Cookie、Session、Token 的区别 -- 推荐好好阅读

前后端接口鉴权全解 | Usubeni Fantasy -- 上面的原文 - 推荐

HTTP 会话控制[Cookie与Session] - 学习/实践_william_n的博客-CSDN博客

分布式系统 - 登录 - 学习/实践_william_n的博客-CSDN博客

Lumen - 学习/实践_william_n的博客-CSDN博客 -- 其中涉及到REST API的实践, 有会话管理认证

Restful API - 学习/实践_william_n的博客-CSDN博客

2.整理输出

通过认真阅读, 以及后续的实践验证, 可以知道:

简单说, 就是这些会话管理的技术本质上分为客户端存储与服务端存储两种实现方式

我们常用的单体登录实现, 通常是基于服务端储存实现方式, 

关于分布式系统登录, 则通常是基于JWT来实现, 属于客户端存储实现方式.

关于分布式系统登录中, session中心化实现方式, 属于哪种实现方式, --- 服务端存储

​​​​​​​

剧透一下,下面要讲的 JWT(JSON Web Token)!他是一个 token!但是里面放着 session 信息!放在客户端,并且可以随你选择放在 cookie 或是手动添加在 Authorization!但是他就叫 token!

所以,个人觉得你不能通过存放的位置判断是 token 或是 session id,也不能通过内容判断是 token 或是 session 信息,session、session id 以及 token 都是很意识流的东西,只要你明白他是什么、怎么用就好了,怎么称呼不太重要。

另外在搜索资料时也看到有些文章说 session 和 token 的区别就是新旧技术的区别,好像有点道理。

弄清楚他们之间的区别, 本质, 才能更好地使用.

下面文章的重点内容总结如下:

  • cookie 是储存 session/session id/token 的容器
  • cookie 设置一般通过 set-cookie 请求头设置
  • session 信息可以存放在浏览器,也可以存放在服务器
  • session 存放在服务器时,以 session id 为钥匙获取信息
  • token/session/session id 三者的界限是模糊的
  • 一般新技术使用 token,传统技术使用 session id
  • cookie/token/session/session id 都是用于鉴权的实用技术
  • JWT 是浏览器储存 session 的一种
  • JWT 常用于单点登录(SSO)
  • OAuth2.0 的 token 不是由应用端颁发,存在另外的授权服务器
  • OAuth2.0 常用于第三方应用登录

截图

后续补充

...

3.问题/补充

1. 可以看到作者在最后说到,我们自己可以实现一个简单的登录系统

思路与伪代码已经给出,需要实践

let store = {}

// 登录成功后
store[HASH] = true
cookie.set('token', HASH)

// 需要鉴权的请求钟
const hash = cookie.get('token')
if (store[hash]) {
  // 已登录
} else {
  // 未登录
}

// 退出
const hash = cookie.get('token')
delete store[hash]

所以之前听说,有人自己不用PHP自带的session机制,而是自己封装实现了一个session认证系统,

现在看来,简单的认证系统,我们自己也可以封装实现~ --- 技术无边界,只要懂了,也就觉得没什么神奇的了

2. TBD

4.参考

傻傻分不清,前后端接口 Cookie、Session、Token 的区别 推荐好好阅读

前后端接口鉴权全解 | Usubeni Fantasy -- 上面的原文 - 推荐

HTTP 会话控制[Cookie与Session] - 学习/实践_william_n的博客-CSDN博客

分布式系统 - 登录 - 学习/实践_william_n的博客-CSDN博客

Lumen - 学习/实践_william_n的博客-CSDN博客 -- 其中涉及到REST API的实践, 有会话管理认证

Restful API - 学习/实践_william_n的博客-CSDN博客

后续补充

...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值