session&token based auth登录方式描述

session:

  • 客户端发出登陆请求给服务端,请求包含用户名、密码信息
  • 服务端收到请求,web服务器分析请求后,将用户名和密码传到DB,验证用户名是否存于DB在及密码是否正确(验证密码时将传过来的密码加密后与DB中的密码比对)
  • 如果用户存在且密码正确,则在服务端根据用户信息生成一个session文件,该文件存放于服务端的内存中
  • 服务端返回给客户端登陆成功信息及session_id, session_id存放在客户端cookie中
  • 之后每次访问服务端时,请求中都回带上cookie发给服务端
  • 服务端读取cookie中的sessionid,与内存中的session信息对比,如果存在并且未超时,再通过session中的用户信息从DB读出用户其他信息

token:

  • 客户端发出登陆请求给服务端,请求包含用户名、密码信息
  • 服务端收到请求,web服务器分析请求后,将用户名和密码传到DB,验证用户名是否存于DB在及密码是否正确(验证密码时用将传过来的密码加密后与DB中的密码比对)
  • 如果用户存在且密码正确,则在服务端根据用户信息(如userid,失效时间等)计算出一串字符作为token
  • 服务端返回给客户端登陆成功信息及token(json形式)
  • 下次客户端访问服务端时,请求的header信息中会带上这个token
  • 服务端拿到token后校验token中的签名,验证token是由本服务器签发、未被窜改及在有效期内,则通过token中的用户信息读取用户其他信息
原文地址:https://www.cnblogs.com/mercycnblog/p/9745130.html