问答

如果不使用cookie,如何用redis实现一个类似的功能呢?

作者:admin 2021-04-09 我要评论

我现在有个只提供api接口的项目,没有使用cookie,相关的权限验证都是通过 post 参数验证的,现在有个地方要用到验证码,如果不使用 session cookie ,该如何实...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

我现在有个只提供api接口的项目,没有使用cookie,相关的权限验证都是通过 post 参数验证的,现在有个地方要用到验证码,如果不使用 session cookie ,该如何实现呢?

我目前使用的是服务端生成验证码图片的时候,在服务端redis里存储该验证码,以用户端的ip做key,但是这样感觉如果在相同的局域网里的两台机器会共用该验证码,但是又没什么好办法解决。

在此请教大神看有什么好办法解决没有,多谢。

###

服务端生成验证码图片的时候,你可以给他重定向一下,或者和csrf一样,给他一个唯一key,让他带着这个key过来。

###

不使用 session cookie 的话,就自己生成一个唯一 ID,这里叫做 verifyId,把这个 verifyId 和验证码的答案保存在 redis中。

然后把这个 verifyId 与验证码图片一起返回,客户端在提交验证码时,必须要把这个 verifyId 和答案一起返回,后台通过 verifyId 获取 redis 中的答案做匹配。

当前别忘记要设置 verifyId 的超时时间。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器