美文网首页
Token,Session,cookie

Token,Session,cookie

作者: 海芋洋芋 | 来源:发表于2017-10-17 16:01 被阅读19次

Token

参考Android客户端和服务端如何使用Token和Session

1.Token的存在?

如果一个APP,发送的每次请求,都需要保证用户登录的前提下,服务器才会相对应的操作,进行数据返还或者错误提示.如果每次登录,都需要提交用户名密码,服务器都需要去数据库去查询用户名密码的正确与否,无疑会增加服务器的负荷.

ps:或许有人会有这样的疑问,那我做的这些请求,是在保证用户登录的前提下,我就用不到了呀.

ps:如果有人将我们的软件下载下来,进行了反编译,调整Activity的顺序,就可以拿到我们的服务器地址,进行一些不好的行为,如果我们的服务器要求每次请求都携带Token的话,他就没办法进行破坏.安全性考虑

2.Token的定义?

Token是服务器生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器会生成一个Token,并将这个Token返回给客户端,以后客户端每次请求只需要带上Token来请求数据即可,无需带上用户名或密码.

ps:只需检索客户端请求携带的Token和服务器端保存的Token进行对比,便可以知道用户的登录状态.

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

3.如何使用Token?

1).用设备号/设备mac地址作为Token(推荐)

客户端:

客户端在登录的时候,获取设备的设备号(mac地址),这个mac地址是唯一的,并将获取到的mac地址传给服务端.

登录成功以后,服务端会返回一个Token,然后后面我们每次请求的时候都携带Token请求即可.

服务端:

服务端接受到该参数后,使用一个变量来接受,同时将其作为Token保存在数据库中,缓存中等等.

客户端在每次请求的时候,都必须携带Token来进行请求,跟服务器中存储的Token进行比对,如果没有携带或者Token错误则拒绝,如果相同,则通过,并给予客户端具体的回应,

ps:此刻客户端和服务端就统一了一个惟一的标识Token,而且保证了每一个设备拥有了一个唯一的会话.服务端可以给Token设置有效期,当有效期到了以后,服务端会给客户端返回一个Token失效的状态码,然后客户端检测到这个失效的状态码的时候,重新拉起登录界面即可.

ps:

这种方式使用的好处是方便,不用存储数据,但是缺点就是当session过期后,客户端必须重新登录才能进行访问数据。

优点:加mac地址,可以根据mac地址确定每次请求的是否是同一个设备,比如微信,QQ等应用,确保应用的安全性.

2).用session作为Token

客户端:

客户端只需携带用户名和登录密码即可

服务端:

服务端接受到用户名密码后立即判断,如果正确了,就获取本地sessionID作为Token返还给客户端,客户端以后请求只需写上请求数据就可以.

ps:

这种方式使用的好处是方便,不用存储数据,但是缺点就是当session过期后,客户端必须重新登录才能进行访问数据。

Cookie和Session机制

理解Cookie和Session机制


相关文章

网友评论

      本文标题:Token,Session,cookie

      本文链接:https://www.haomeiwen.com/subject/dsxhrxtx.html