用公众号来做验证码接收场景

2019 年 6 月 27 日
 lzjun

任何一个网站或者 APP,如果要避免用户滥用注册功能,就必须确保注册的是真人而不是脚本程序,在 web2.0 时代,我们一般通过验证注册者的邮箱,注册后给用户邮箱发一个激活链接用户主动点击激活链接后才认为是一个真人,否则可能是机器人在注册。

移动互联网,人人一台手机,注册方式改成了短信验证码,用户输入手机号码,系统会给手机发送一个验证码,必须是有效的验证码才能注册成功。

以上两种方式我们一般都是用第三方平台,比如邮件服务商有 mailgun,sendcloud,短信平台则更多,这里就不举例,不过大部分平台对个人开发者并不那么友好,或者收费很贵。

而我尝试使用微信公众号来是实现这种功能,发现效果很好。因微信平台对个人订阅号开放了发送接收信息的接口。具体怎么实现呢? 看看二十次幂项目中我是怎么做的?

注册时,会有一个获取验证码的入口,点击过去就是告诉你怎么获取验证码

用户关注公众号之后,每个用户都有唯一的 OPENID,所以我们可以设计一张验证码的表,字段有:

为了简化,我只列出关键字段

openid
code
valid # 是否有效

账户表:

email
password
openid

为了防止用户多次注册,我们可以限制每个 openid 只能申请一个注册验证码,也就只能注册一个账号。

用户回复关键字后,我们就给他生成一个验证码记录。这个验证码是唯一的,例如:

{"openid":"xxxxx", "code":"123", "valid":True}

用户注册时,必须将验证码和邮箱以及密码字段提交,这样,我们就可以通过验证码找到对应的 openid,这样就可以将 openid 关联到对应 email 账号了。

{"openid":"xxxxx", "email":"xx@ershicimi.com", "password":"666"}

关联后,也可以通过输入自己的 email 重置密码了,如果你输入别人的 email,是不是也可以重置呢?不行的,因为 email 与 openid 绑定了,你输别人的 email 是对不上你 openid 的

8301 次点击
所在节点    程序员
41 条回复
MonoLogueChi
2019 年 6 月 27 日
@mateor95 微信登录需要认证才可以
shijingshijing
2019 年 6 月 27 日
把自己的业务命运和 wech@t 绑定到一起,很好很强大。

未来不知道什么时候公众号出发了威信的 G 点,给你把公众号一封,一刀就给你把客户源全部剁掉,你哭都来不及。
starsky007
2019 年 6 月 27 日
邮件和短信都是开放的,而微信不是
daomen
2019 年 6 月 27 日
6sq.net 这个网站就是在微信公众号回复关键词获取验证码的。主程序用的 wecenter。
version
2019 年 6 月 27 日
短信验证码接口.很多云平台都不需要企业认证了.个人申请就可以了..然后再找第三方手机号码认证...
既然是注册用户机制.没必要那么省..短信验证码都不愿意出.1 万次 400 元..有 10 万用户能吹上天了
leopku
2019 年 6 月 27 日
@lzjun shi 一样的体验,几乎所有公众号都变成营销号,还不垃圾?!
Tink
2019 年 6 月 28 日
有个问题就是不用微信的人没法注册了
ryanlid
2019 年 6 月 28 日
> “为了防止用户多次注册”

用户注册多个微信,就可以多次注册了。
rb6221
2019 年 6 月 28 日
openid 好像不唯一我记得……以前接分享的时候注意到的
lzjun
2019 年 6 月 28 日
@janus77 每个用户在某个公众号下面 是唯一的
lzjun
2019 年 6 月 28 日
@ryanlid 这种方式并没有问题啊,我只防止机器无限制的注册就行
lzjun
2019 年 6 月 28 日
@Tink 这个反而不担心,10 亿日活的微信不用微信的人极少
lzjun
2019 年 6 月 28 日
@daomen 他们直接支持微信登录,这种更方便了,但是需要企业认证
t94P9
2019 年 6 月 28 日
好恶心…短信实名已经够恶心了 还来个微信
suom
2019 年 6 月 28 日
公众号被举报封号就惨了…
tiaod
2019 年 6 月 28 日
那希望你永远不要进入与腾讯构成直接竞争的行业吧,例如即时通讯。
lzjun
2019 年 6 月 28 日
@suom 又不干坏事,为啥会被封号
shuizhengqi
2019 年 6 月 28 日
@Jirajine 没错,我国是有短信认证,请问你是哪国?
Jirajine
2019 年 6 月 28 日
@shuizhengqi 你国意在与或是集体荣誉感爆棚,或是吃人的既得利益者划清界限,普天之下,莫非王土,既非我土,何谓我国?
至于我是哪国?不知道。反正不是你国。
LicV587
2019 年 6 月 28 日
你这样还不如小程序生成带参数二维码,直接微信扫码,跳转到小程序,用户授权登录

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/578035

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX