一、基于session。
1、客户端向服务器发送用户名和密码。
2、服务器验证通过后,在当前session里保存该用户的相关数据。
3、服务器向客户端返回一个session_id,写入用户的Cookie。
4、客户端之后每一次请求,将session_id一起传回服务器。
5、服务器根据客户端返回的session_id,找到之前保存的数据,得知用户信息。
二、session数据持久化
为了实现单点登录,采用session数据共享,将session数据持久化,即写入数据库或者持久层。服务器收到请求后,向持久层请求数据。
三、JWT:Json Web Token
1、客户端向服务器发送用户名和密码。
2、服务器认证后,生成一个JSON对象,发送给客户端。为了防止用户篡改数据,服务器生成这个对象时,会加上签名。
JWT的数据结构:Header.Payload.Signature。
3、之后客户端与服务器的每次通信,都加上这个JSON对象。放在Cookie里自动发送也可以,但不能支持跨域,通常的做法是放在HTTP请求的头信息Authorization字段里面。Authorization:Bearer<token>。跨域的时候,JWT会放在Post请求的数据体内。