背景:解决请求接口时,判断用户是否已登录的问题
一、cookie机制
(cookie机制是采用在客户端保持状态的方案)
请求过程:
1、客户端向服务器请求,发送用户名和密码
2、服务端校验成功,则设置set-cookie并返回给客户端
3、客户端以key=value形式存储cookie
4、客户端发送请求时自动带上cookie(浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器)
5、服务端校验成功则根据携带的cookie返回数据
二、session机制
(session机制是一种服务器端的机制)
请求过程:
1、客户端向服务器请求,发送用户名和密码
2、服务器生成sessionId(随机产生的一串字符串),绑定用户数据存储在数据库
3、服务器返回sessionId给客户端
4、客户端用cookie存储sessionId,以后的请求都带上这个sessionId
5、服务器如果收到这个sessionId,那么就去数据库查找用户数据,如果找到了说明验证通过
6、服务器把验证结果返回客户端
三、token机制
(Token是用户的验证方式)
请求过程:
1、客户端使用用户名跟密码请求登录
2、服务端收到请求,去验证用户名与密码
3、验证成功后,服务端会签发一个 Token(由header、preload、sign三部分组成),再把这个 Token 发送给客户端
4、客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
5、客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
6、服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据