<<^^>>努力不一定有回报,不努力一定没有回报。

信息展示

昵称:aliveto 邮箱:some_body@foxmail.com

token和session

token的含义

token:token是服务端生成的一串字符串,以做客户端请求的一个令牌。当第一次登入后,服务器生成一个token,便将此token返回给客服端,以后客户端只需带上这个token前来请求数据就可以。无需重复带上用户名和密码。

使用token的好处

token的目的是为了减轻服务器的压力,减少频繁的查询数据库,是服务器更加的健壮。

如何使用token

  • 用设备号/设备的物理地址(mac)作为token

客服端:客服端登入的时候获取设备的mac地址,将其传给后端。

服务端:服务端接收到该参数的时候,用一个变量将其做为token保存到数据库中,并将token设置到session中,客服端每次请求的时候,服务端都要讲客服端传递的token和服务器端的session中的token进行对比,如果匹配则通过,反之。

缺点:客服端将mac地址当做参数传递,服务端还需要保存;

优点:客服端 不需要重新登入,只要登入一次就可以,但是这段时间是有限的,由服务端设置。当超时后服务器要讲客服端传来的token向数据库中查询,同时赋值给一个变量,这样就这个token就重新记时。

  • 用Session值做为token

客服端:客服端只需携带用户名和密码即可登入。

服务端:服务端接收到用户名和密码后并加以判断,如后正确就将sessionID作为token返回给客服端,客服端只需带上请求数据就可以。

优点:比上一种方法较为方便,不用储存数据。

缺点:当session过期后,客服端就要重新发送请求。

token使用中可能出现的问题:

  1. 第一种方法:当网络不好或者并发请求时会导致多次重复提交数据。解决的方案:将session和token套用,

session是一个在单个操作人员整个操作过程中,与服务器端保持通讯的唯一识别的信息,在同一个人的多次操作中,session是用一个对象。因为可以对其加上锁,当同一人员多次进入,可以通过session限制单向。在后一个请求来时,利用session中的token验证请求是否一致,当不一致是,认为是重复提交数据,将不允许通过。