Token**
基于网站安全的初衷结合曾经接触的网络安全方面的知识打算在登陆时使用Token技术。
首先一般的登陆模式客户端频繁向服务端请求数据,服务端频繁的去数据库来查询用户密码进行对比从而判断用户名和密码是否正确。为了减轻服务器压力减少向数据库查询次数达到使服务器更健壮的目的,我们选择使用Token。
那么什么是Token:Token是服务器生成的一段字符串,作为客户端请求的令牌,第一次登陆后,服务器生成一个Token并返回给客户端,以后客户端带着Token来请求数据即可不需要再次带上用户名和密码。
为了更高的安全性我们的token也设置了有效期。
如何使用Token
用session值作为Token
客户端:客户端只需携带用户名和密码登陆即可。
客户端:客户端接收到用户名和密码后并判断,如果正确了就将本地获取sessionID作为Token返回给客户端,客户端以后只需带上请求数据即可。
分析:这种方式使用的好处是方便,不用存储数据,但是缺点就是当session过期后,客户端必须重新登录才能进行访问数据。
使用过程中出现的问题以及解决方案?
刚才我们轻松介绍了Token的两种使用方式,但是在使用过程中我们还出现各种问题,Token第一种方法中我们隐藏了一个在网络不好或者并发请求时会导致多次重复提交数据的问题。
该问题的解决方案:将session和Token套用,如此便可解决,如何套用呢
因为session是一个在单个操作人员整个操作过程中,与服务器端保持通信的唯一识别信息。在同一操作人员的多次请求中,session始终保证是同一个对象,而不是多个对象,因为可以对其加锁。当同一操作人员多个请求进入时,可以通过session限制只能单向通行。通过使用session以及在session中加入token,来验证同一个操作人员是否进行了并发重复的请求,在后一个请求到来时,使用session中的token验证请求中的token是否一致,当不一致时,被认为是重复提交,将不准许通过。