Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
388 views
in Technique[技术] by (71.8m points)

除了cookie之外,还能用什么方法做验证码功能?

如题,一般现在的短信验证码是这样做的(至少我们是这样做的):前端调发短信接口,response返回一个cookie,然后下一个验证的接口,前端通过设置credentials: 'include',把cookie带上传给服务器,这样服务器就知道要对上哪个验证码了。

但是现在cookie有了个新敌人:SameSite,使得传递cookie变得困难起来,而且SameSite的兼容性也是个问题,据说部分旧版和国内的浏览器不能正确地识别SameSite=None,使得服务器端设了也白设。另外SameSite=None确实也有cors的风险。

所以我们如果不用cookie,还能怎么样实现验证码功能呢?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

前端调用发送验证码的接口,该接口给用户手机号发送验证码,同时将这个验证码保存到redis,可以设置一分钟或者五分钟的有效期,不需要将验证码返回给前端

用户手机短信收到验证码后,自己输入验证码,调用验证接口,用户输入的验证码与刚刚redis保存的验证码进行校验和对比即可


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...