`

关于如何防止重复签到的技术探讨

 
阅读更多

    

    问题:

    最近工作中遇到一个签到的问题,其实说来这并不是一个高并发的问题,也并不是CSRF伪造请求的问题,但是跟这两点有点类似,总结来说是针对用户防止短时间内重复刷请求的问题啦,根本原因其实是单用户的并发问题,那么如何实现呢?

 

   解答: 

   思路一,CSRF问题我们怎么解决呢,一般是用时间戳,Appkey,AppSecret来生成token,过了预定的时间这个请求就不能用了。如果这种策略用在解决这个问题上肯定是行不通的,因为一般的时间戳过期时间肯定是以分钟为单位的,而签到一般是秒级单位的,一秒内可以生成多次签到请求。

 

   思路二,搞一个ConcurrentHashMap,来控制用户的访问。但是有多个节点啊,内存的同步首先就是个问题,。

   

 Object signObj = concurrentHashMap.get("username");
 if(null == signObj) {
     signObj = concurrentHashMap.putIfAbsent("username", new Object());
         if(null != signObj) {
             doSign();
             concurrentHashMap.remove("username");
         }
 }

 

   思路三,目前的实现是Cache来实现的,思路其实差不多,可能cache会快一点点和设置超时时间吧。

   

//防止重复处理, 如果有数据返回false
//即使失败了,一分钟内也不能再重试请求了
boolean succ = setCacheDataIfNotExist(accountId + 
                      "-" + sourceType, accountId + "|" + sourceType, 60 * 1000);
if(!succ){
   LogConstant.runLog.info("User sign repeatly! accountId : " + accountId + " ip : " + ip + " sourceType: " + sourceType);
   return -1;
}
dosign();

 

 

 

 

 

分享到:
评论

相关推荐

    QQ群签到机器人4.0

    1. 过滤重复签到——群员发送签到语,机器人自动提示签到顺位,每位群员一天内只能签到一次。 2. 自定义签到词——群主可自定义签到词,如设置"我来了",则当群员发送"我来了"即可实现签到。 3. 自定义签到...

    小程序云技术开发微信小程序打卡定位签到系统源代码小程序云开发本科毕业设计.zip

    小程序云技术开发微信小程序打卡定位签到系统源代码.小程序云技术开发微信小程序打卡定位签到系统源代码.小程序云技术开发微信小程序打卡定位签到系统源代码.小程序云技术开发微信小程序打卡定位签到系统源代码.小...

    签到管理系统是一个局域网签到系统

    Asoft签到管理系统是一个局域网签到系统

    QQ群签到机器人

    1. 过滤重复签到——群员发送签到语,机器人自动提示签到顺位,每位群员一天内只能签到一次。 2. 自定义签到词——群主可自定义签到词,如设置"我来了",则当群员发送"我来了"即可实现签到。 3. 自定义签到...

    基于人脸识别技术的考勤签到系统

    随着人工智能技术的发展,人脸识别技术应用到了生活的很多方面,本文利用人脸识别技术实现了人脸识别签到功能。具体采用 Python 语言以及 dlib 库、face_recognition 库以及 OpenCV 库完成人脸检测、人脸定位以及...

    Java课堂签到系统源码.zip

    Java课堂签到系统源码 Java课堂签到系统源码 Java课堂签到系统源码 Java课堂签到系统源码 Java课堂签到系统源码 Java课堂签到系统源码 Java课堂签到系统源码 Java课堂签到系统源码 Java课堂签到系统源码 ...

    老师小程序签到系统 微信小程序签到系统,上课打卡签到,自动签到、人工签到 全流程 可直接用于项目使用 也可以作为毕业设计使用

    微信小程序签到系统,上课打卡签到,自动签到、人工签到 全流程 可直接用于项目使用 也可以作为毕业设计使用 老师在小程序签到系统可以发起签到

    QQ群签到系统_QQ群签到机器人 v4.0.zip

    1. 过滤重复签到——群员发送签到语,机器人自动提示签到顺位,每位群员一天内只能签到一次。 2. 自定义签到词——群主可自定义签到词,如设置"我来了",则当群员发送"我来了"即可实现签到。 3. 自定义签到提示...

    基于RFID射频技术的人员签到系统

    基于RFID射频技术的人员签到系统 系统签到 人员签到

    签到管理系统签到管理系统

    签到管理系统 本系统用的语言为vb 用户名:supera密码:123

    小程序源码 打卡签到 (代码源)

    小程序源码 打卡签到 (代码源)小程序源码 打卡签到 (代码源)小程序源码 打卡签到 (代码源)小程序源码 打卡签到 (代码源)小程序源码 打卡签到 (代码源)小程序源码 打卡签到 (代码源)小程序源码 打卡签到 (代码源)小...

    微信小程序—上课签到系统源码.zip

    微信小程序—上课签到系统源码,高分项目,课程设计,期末大作业都适合。二维码签到,图片验证。 微信小程序—上课签到系统源码,高分项目,课程设计,期末大作业都适合。二维码签到,图片验证。微信小程序—上课...

    基于Python的课堂人脸签到系统的设计与实现-论文

    本文旨在提高签到效率,防止代替上课现象的发生,并提升教学质量。本研究采用Python的OpenCV与Dilb库实现对人脸的识别、记录和处理,使用Flask框架中的jinja2模板引擎进行动态的HTML页面搭建,通过RESTful API技术为...

    基于蓝牙4.0 的课堂签到系统设计与开发.pdf

    蓝牙4.0技术可以应用于课堂签到,实现自动签到和智能签到。该技术可以实现在指定时间和地点实现签到,提高教学效率和管理水平。 知识点六:系统设计和开发 系统设计和开发是指根据需求和技术,设计和实现一个完整...

    基于Flask的课堂扫脸考勤签到系统

    基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的...

    日历+签到(日历签到html)

    html+js日历签到插件,可自定义已签到日期,签到自定义

    人防工程验收签到表.docx

    人防工程验收签到表的标题是“人防工程验收签到表.docx”,这表明该文件是关于人防工程验收签到表的电子文档。标题中“人防工程验收签到表”八个字是该文件的核心内容,它们描述了文件的主要内容和目的。 二、人防...

    基于深度学习的人脸识别签到系统

    基于深度学习的人脸识别签到系统.基于深度学习的人脸识别签到系统.基于深度学习的人脸识别签到系统.基于深度学习的人脸识别签到系统.基于深度学习的人脸识别签到系统.基于深度学习的人脸识别签到系统.基于深度学习的...

    签到代码,签到功能

    签到代码,签到功能

    CNN人脸识别签到系统源文件+报告论文

    本项目着手实现了一个基于卷积神经网络的人脸识别签到系统,该系统能够进行人脸的采集,并将不同人脸对应的学号... 2、利用多线程将ui界面与功能代码分开,在显示界面的同时还能进行后台的运算,防止卡顿提升使用体验,

Global site tag (gtag.js) - Google Analytics