WebApi中的Session与Token间的处理对接

时间:2024-07-19 20:04:44

首先,说起来创建session,一般会针对注册登录或者授权等情况;

session 从字面上讲,就是会话。这个就类似于你和一个人交谈,你怎么知道当前和你交谈的是张三而不是李四呢?对方肯定有某种特征(长相等)表明他就是张三。session 也是类似的道理,服务器要知道当前发请求给自己的是谁。为了做这种区分,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。至于客户端怎么保存这个“身份标识”,可以有很多种方式,对于浏览器客户端,大家都默认采用 cookie 的方式。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。(这里引用一位友友最通俗的解释方式,感觉通俗易懂就拿过来啦)。

所以get方式的请求方式如下:

WebApi中的Session与Token间的处理对接

WebApi中的Session与Token间的处理对接

在做接口测试时,经常会碰到请求参数为token的类型:

客户端使用用户名跟密码请求登录->服务端收到请求,去验证用户名与密码->验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端->客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage->客户端每次向服务端请求资源的时候需要带着服务端签发的 Token->服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据.

在web页登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为token,存储到服务器中,并返回token到web页面,以后web页请求时,凡是需要验证的地方都要带上该token,然后服务器端验证token,成功返回所需要的结果,失败返回错误信息,让他重新登录。其中服务器上token设置一个有效期,每次web页请求的时候都验证token和有效期。