session和token的登录机制
做登录的时候遇到了token ,web和smtp的登录情况,这里 记录一下我所学习的两种登录方式,一种是token ,一种是session
session
登录机制
- 当用户请求登录接口进行登录
- 服务端 获得登录的信息,从而在数据库中查到相应的用户信息,将其生成一个
session
,session
里面包含了用户的信息,将这个session
存储起来,并用sessionId
去找对应的session
,如果session
中已经有了这个用户的登录信息了没说明用户已经登陆过了,sessionId
通过set-Cookie
发送给客户端
客户端收到了接口的“登录成功”的回应,浏览器发现接口响应中有set-Cookie,自动保存在本地(可在控制台的网络下找到这个域名的cookice)
下面是token认证的一个简单的流程
- 客户端将使用用户名和密码去请求登录
- 服务端 收到请求,去验证用户名和密码
- 验证成功后,服务端 签发一个Token,再把这个Token 发送给客户端
- 客户端收到这个token后,可以把它存储起来,这里的存储有可以是放在cookie 或者使用localstorage存在本地
- 客户端每次向服务端发送请求资源的时候,需要带着这个token
- 服务端收到请求后,然后去验证客户端 请求里带的token,如果验证成功的话,服务端就会向客户端返回请求的数据
localStorage 、sessionStorage、cookie的数据存储时间
- localStorage 存储持久数据,浏览器关闭后 不会主动删除
- sessionStorage 数据在当前的浏览器窗口关闭以后会自动删除
- cookie 设置的 cookie 过期时间 之前会一直有效,即使是浏览器或窗口关闭