Web用户登陆常见方案
文章目录
服务端维护会话(Session)
服务端维护会话(Session)时,主体流程如下
用户请求Header中没有Cookie, 或Cookie中没有session-id
- 1.用户未登录,跳转至登陆入口,用户填写用户名密码.
- 2.服务端验证密码通过后,生成session并保存到服务端(session内包含用户信息)
- 3.服务端下发Set-Cookie, 内容为session-id(仅ID)
用户请求Cookie已包含session-id
- 1.验证Session id是否有效, 并读取服务端存储的session
- 2.根据session信息验证用户是否合法(可灵活根据IP,终端等验证)
- 3.验证完成
服务端维护会话的优缺点如下.
优点:
- 1.节省客户端网络传输(Header只传输id)
- 2.Session可存储信息量大,可自由拓展
- 3.服务端可自由控制所有Session
缺点:
- 1.多台应用服务器同时提供服务时, 需要Session共享(通常存放在Redis中)
- 2.Redis崩溃之后,所有用户会话丢失
服务端不维护会话(JWT)
常见的服务端不维护会话的实现是JWT(JSON Web Tokens).基本思路是扩充Cookie的信息量,即用户发送的Cookie中包含此会话的所有信息(Cookie内容为一个JSON).
主体流程如下: