适用环境是需要频繁进行账号和请求合法性验证的地方
大致思路:
1、登陆时,服务器端接收一个账号和密码,还可以再加上用户的ip等信息通过md5等加密算法计算出一个定长的字符串作为用来验证的token
2、根据用户账号/id md5出一个定长的字符串,用来作物memcache的key
3、把生成的key和token存入memcache,并设置有效期为2小时(具体根据需要,最大不超过30天)
4、当每次客户端请求时都会传递用户的id和步骤1计算出的token,与memcache中的数据进行对比,如果正确,value的有效期延长为设置的有效期时间
所解决的问题:
1、多处登陆,因为在不同的机器/时间/ip登陆后token都会发生变化,势必会导致另外一台机器上的用户下线
2、减少数据库的读取,降低服务器的压力
所需要完成的方法:
1、生成key,可以使用md5获取定长的字符串作为key
2、根据参数生成token,参数包括id,password,然后在服务端获取ip(如果可以获取的到),并使用timestamp进行加密
3、存储key/token,并设置有效期
4、数据验证,给出id和token,验证token是否合法
---------------------------------
added @2013-09-06 08:57
这里面还有一个要解决的问题就是登陆时的数据验证问题,我找到的有两种验证方法
1、比较简单的就是hash验证,可以多种加密方法同时使用,优点是简单方便
2、使用证书,优点是更安全