imoing

导航

 

适用环境是需要频繁进行账号和请求合法性验证的地方

大致思路:

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、使用证书,优点是更安全

posted on 2013-08-15 23:31  艾莫明  阅读(951)  评论(0编辑  收藏  举报