zoukankan      html  css  js  c++  java
  • 使用memcache进行账号验证服务

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

    大致思路:

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

  • 相关阅读:
    python的不可变对象与可变对象及其妙用与坑
    WAAPI+Python使用中的相关问题和学习记录
    开发工具使用
    面试要点5
    面试要点4
    HTTP状态码——详解
    ElasticSearch使用curl导数据报400可能原因
    elasticsearch的安装、部署
    js二级联动
    aspose.words for java操作文档doc,设置一级二级三级标题以及段落表格等详情
  • 原文地址:https://www.cnblogs.com/imoing/p/3261120.html
Copyright © 2011-2022 走看看