是这样的,有一个签到的需求,为了防止拍照二维码给别人扫签到,所以想弄一个二维码过期的功能 求实现思路
是这样的,有一个签到的需求,为了防止拍照二维码给别人扫签到,所以想弄一个二维码过期的功能 求实现思路
|
hjosamaApr 1, 2021
1
把二维码指向的链接加上时间戳,然后链接的请求接口进行控制,业务逻辑上,将请求过来的时间戳进行分析,然后判断时间区间,然后就可以设置过期时间了
|
|
zhoudaiyuApr 1, 2021 via iPhone
2
延迟队列?时间轮?
|
|
2kCS5c0b0ITXE5k2Apr 1, 2021
3
肯定是带 token 后台判断拉. 这种不是很简单吗
|
|
hjosamaApr 1, 2021
4
只要请求的时间戳大于链接生成时的时间戳比如 5 分钟,就判断为过期
|
|
2kCS5c0b0ITXE5k2Apr 1, 2021
5
再加上定位 完美解决拍照二维码给别人扫签到
|
|
imn1Apr 1, 2021
6
两个简单思路,应该还有其他的
1. 字串是动态的,隐含时间信息 2. 生成的图片是有时效的 应该第一个更广泛,甚至可以客户端判断失效,无需传到服务器端才判断,反正跟身份验证器的数字一个意思 |
|
8
招一个人坐在那边对着表格看是不是过期
|
|
alan0liangApr 1, 2021 via Android
10
之前想过这个问题,直播( Zoom,腾讯会议)可以绕过一切只靠时间判断的检测
|
|
2kCS5c0b0ITXE5k2Apr 1, 2021
11
@hjosama 我的说的 token 和你说的时间戳是一个意思.
|
|
2kCS5c0b0ITXE5k2Apr 1, 2021
12
但是时间戳太容易被生成了. 所以建议后台维护一个短期 token. 来判断.
|
|
moggApr 1, 2021
13
`为了防止拍照二维码给别人扫签到`这个需求我想起来一个叫“猫途校园的小程序”,每个人自己生成一个二维码,已经签到的人 A 扫 B 的二维码可以让 B 也签到。
|
|
2kCS5c0b0ITXE5k2Apr 1, 2021
16
@cobyx 那就再加上用户识别 + 定位
|
|
JmmBiteApr 1, 2021
17
定位 + token + 隐藏水印(拍照后不显示那种)
|
|
WincerApr 1, 2021
19
这种情况完全用不着后台存 token,担心时间戳被攻破可以加密一下再集成到 URL 里(许多库是做这个的( Python 有 itsdangerous )),验证过期时,直接解密除时间然后算与当前时间的 diff 就行。嫌加解密自己实现麻烦的话,使用 JWT
|
|
opengpsApr 1, 2021
20
二维码就是个网址,网址带一个参数(叫做 token 也行,ticket 也罢),然后这个参数,后台做记录,扩展出创建时间之类的,访问网址就通过扩展信息去判断
|
|
eason1874Apr 1, 2021
21
这个看你的 token 有没有状态,有状态你直接存多一个有效期就行了。
无状态就用 JWT,expires_in 设置一分钟,就可以了。 |
|
yujiangApr 1, 2021 via Android
22
集成到微信里要求绑定微信用户?
|
|
jmk92Apr 1, 2021
23
前端 js 实现过期,后端也是过期的逻辑,为了避免误差,比前端多个几秒。
二维码是个网址,完全可以带个参数,防止生成还可以用可逆的加密,比如把当前时间作为参数,你后端不方便判断吗。 |
|
noobmaApr 1, 2021
24
放 redis 吧,key 设置过期时间,如果签到使用后把 key 删掉
|
|
edsion996Apr 1, 2021
25
参数添加一个没用的字符串,生成一个比较长的 URL 。这样当场扫码还好一点,但是拍照以后再给别人扫,因为拍照的光照和角度原因就不容易成功了。
至于具体这个随机的字符串要多长,可以 A/B 测试根据具体效果来调整 |
|
dingwen07Apr 2, 2021 via iPhone
27
用 OATH-TOTP 生成一个 30 秒有效期的 OTP 加在二维码的链接里,明文还是加密随意
|