用户发送验证码给服务器 是什么思路

一般来说 验证码 都是服务器给用户发送

现在也有很多是 用户给服务器发送 指定验证码 服务器接收后 做相应的操作

那么 这种思路是 怎么样的呢 想了解下

是不是:服务器的验证码页面 需要轮询 或者长链接 一直查看 验证码是否发送 把 手机号 记录到系统中 创建用户 然后自动颁发token 完成登录 或者查看文章 等操作

chowjiawei
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
sanders
最佳答案

找个支持上行的短信通道运营商,一般会配置个上行短信的回调,将短信发给你提供的地址。是否采用长连接还是手动刷新取决于业务场景。

很少做短信上行验证的原因是体验很差,所以除非必要验证用户手机号的上行能力,还是尽量用下行验证。

1年前 评论
讨论数量: 34

有短信接收硬件来处理接收短信后发送到服务器吧。就相当于这个硬件接收到短信后,就把短信号码和信息转发到设置的服务器了。这里最主要的就是这个硬件了,没硬件就做不到

1年前 评论
chowjiawei (楼主) 1年前
deatil (作者) 1年前

我想到的实现:
1、用户访问验证页面,服务器生成页面+验证码+页面token(页面token和验证码绑定)
2、用户通过某个客户端(可以识别用户身份-包括手机短信、微信客户端等等其他平台)发送验证码到指定地方(比如发短信到某个号码,发消息到某个公众号),服务器绑定这些平台的回调接口,获取到发送人的信息和验证码。
3、根据前面获得的发送人信息和验证码获取发送人的授权信息,再根据验证码和页面token的绑定关系通知到验证页面,授权访问验证页面的用户。

1年前 评论
redfish (作者) 1年前
chowjiawei (楼主) 1年前
redfish (作者) 1年前
chowjiawei (楼主) 1年前

“猫池”,也可以自己开发个安卓的 App ,监听短信的广播,然后把发信人手机号 + 内容发送到服务端去就好了

1年前 评论

发送完 用户主动点已发送就完事散

1年前 评论
chowjiawei (楼主) 1年前

一般的业务应当不涉及这种需求,可以咨询一些短信服务商,他们可以提供短信上行回调的(就是接收到用户发送的短信),用词建议将服务器改为服务端

前面看你说轮询比较 low,其实我并不以为,在验证这些场景下轮询是最好的解决方案,额外维护一套长连接会额外消耗巨额服务端资源,所以并不是更高深的技术就是好的,原始的技术就 low,适合业务需求的才是最好的。可以看一下阿里腾讯字节相关业务全部都是采用轮询的方式

1年前 评论
chowjiawei (楼主) 1年前
Mutoulee

你说的这个 “用户给服务器发送” 指的是哪种? 举个栗子

1年前 评论
chowjiawei (楼主) 1年前
chowjiawei (楼主) 1年前
Mutoulee (作者) 1年前
largezhou 1年前
chowjiawei (楼主) 1年前
王小大 1年前

没太明白,楼主说的是短信验证码? 是用户给某个手机发送验证码,然后服务器得到验证码,是这个意思?

1年前 评论
chowjiawei (楼主) 1年前
php_yt (作者) 1年前
chowjiawei (楼主) 1年前
php_yt (作者) 1年前
fatrbaby

这个应该需要硬件支持

1年前 评论

本质上是一样的吧,验证码也是由服务器生成,只是你提交验证码的位置变了而已。

1年前 评论

这个你得找电信运营商。

1年前 评论

挺多短信运营商都支持信息接受,服务端生成验证码,前端展示给用户,提示用户使用指定手机号发送到指定号码,发送完点击已发送,然后你自己用短信运营商的 api 去查,如果查到且内容一致,就通过校验。

1年前 评论
chowjiawei (楼主) 1年前
  1. 用户发送短信
  2. 服务器记录短信
  3. 用户点击已发送短信,服务端校验数据,并做出相应动作
1年前 评论
PHP-Coder 1年前

发送验证码核心是验证手机的发送功能,主要是安全考虑,避免一些物流卡的滥用。当然,之前也有说短信的上下行对等可以让网站发送短信费用下降的,不过后来这个成本被腾讯等大型公司忽略了。 主要是出于安全考虑。

1年前 评论
sanders

找个支持上行的短信通道运营商,一般会配置个上行短信的回调,将短信发给你提供的地址。是否采用长连接还是手动刷新取决于业务场景。

很少做短信上行验证的原因是体验很差,所以除非必要验证用户手机号的上行能力,还是尽量用下行验证。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!