WordPress插件:后台注册通过短信验证用户手机号

日期: 标签:WordPress插件 104 条留言
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我
文章目录

经常上网的你,可能已经注意到,目前国内很多网站注册都需要填写手机号了,并且还要接收验证码以确认你是手机号的实际拥有人。这么做可能会引起很多人的反感,觉得这会泄露隐私,但是在目前国家大力实行手机号实名制以及网络实名制的大背景下,根据相关法律规定,网络运营者必须验证用户真实身份,否则会面临网站被关闭及罚款的处罚。目前国内手机号都已实名,验证手机号实际上就已经完成了监管层要求的验证用户真实身份的要求。

我们不争论验证用户手机号的合理性,作为守法公民,按法律规定行事准没错。在WordPress后台用户注册页面,默认只有用户名和电子邮件两个输入框,想要收集注册用户的手机号并验证真实性,该如何实现呢?经常访问露兜博客的朋友可能会记得我之前写过一个插件:WordPress自定义用户注册页面插件,通过这个插件可以扩展WordPress的注册表单功能。在这个插件的基础上,我利用了点业余时间,重新写了个注册时可以验证用户手机号的插件,暂且命名为:Ludou Phone Register

本插件可以免费使用,代码公开,需要本站提供二次开发、更换短信发送接口、添加/修改功能等才需要收费。

插件截图

插件功能

  • 在注册页面,可通过短信验证码验证用户手机号真实性
  • 在注册页面,用户可直接设置密码
  • 在后台 - 个人资料 - 修改手机号页面,用户可以修改手机号
  • 可防CSRF跨站攻击
  • 图片验证码自动过期,可防短信轰炸

短信接口

这里用到的短信接口是:阿里云短信服务,为什么选用阿里云短信服务作为本插件的短信服务商呢?主要有几点以下原因:

  • 有10元的体验红包,开发测试插件正好可以用到;
  • 个人用户也可以使用,很多短信接口只有企业可以用;
  • 大厂不解释。

不管在哪,发短信都是要收钱的,天下没有免费的午餐,具体价格表请看:短信价格表

注意:阿里云目前需要上传企业营业执照才能发送短信,个人开发者请自行寻找支持个人发送短信的平台。

使用方法

  1. 为了确保插件能够正常运行,推荐使用PHP 5.6以上的版本,低于这个版本可能导致插件无法使用;
  2. 阿里云短信服务需要一个阿里云账户,也可以用淘宝账号登陆,没有的可以自己注册一个;
  3. 登陆阿里云后台:登陆地址
  4. 新使用的阿里云短信,阿里云会赠送一个有效期一个月的10元代金券,可以抵扣短信费。代金券使用完后需充值才能继续使用短信服务;
  5. 在阿里云控制台的 秘钥管理页面,点击 创建Access Key,并且确保处于 启用 状态,获取到 AccessKeyId 与 AccessKeySecret;
  6. 在阿里云 短信签名页面,添加短信签名,签名类型选择"验证码或短信通知",签名填你的网站名称。
    不懂的可以看阿里云的文档:申请短信签名目前必须要有企业营业执照才能添加短信签名。
  7. 在阿里云 短信模板页面,添加短信模板,模板类型选择"验证码",模版名称自己填,模版内容可自行发挥,将验证码用变量${code}代替即可。如你可以设置模板内容为:
    ${code} 这是您的短信验证码,10分钟内有效。验证码 ${code}
    不懂的可以看阿里云的文档:申请短信模板
  8. 短信签名和短信模板待阿里云审核通过后,记住签名名称和模版CODE;
  9. 点此下载插件,并解压;
  10. 用文本编辑器(没有就用记事本)打开ludou-phone-register/config.php,按照注释替换成你的AccessKeyId、AccessKeySecret、签名名称和模版CODE,修改后类似:
    // 阿里云 Access Key Id
    $AccessKeyId = '23456783';
    
    // 阿里云 Access Key Secret
    $AccessKeySecret = 'cmmmmm0abcdefd8h35861a801ac752d5';
    
    // 短信签名
    $sign = '阿里云';
    
    // 短信模板CODE,如SMS_123456789
    $template = 'SMS_123456789';
  11. 将文件夹ludou-phone-register上传至你的网站WordPress插件目录下,即/wp-content/plugins/,然后到WordPress后台激活插件Ludou Phone Register即可,你的后台注册表单就已经像上图的一样了。该插件只针对单站点,开启WordPress多站点功能,本插件无效。

注意,本插件和Ludou Custom User Register插件不可同时使用,可能会出现冲突。

插件使用过程中有什么问题,随时可以:给我留言

更新记录

1.0版 2017年5月2日
* 首个版本

2.0版 2017年9月14日
* 将短信接口由阿里大于换成了阿里云短信
* 修复后台修改手机号的显示错误

PS:请大家按照我文章中介绍的操作步骤进行申请接口和安装插件,否则可能用不了本插件。有同学想当然地去阿里云市场申请了个短信接口,结果用不了,过来质问我说,你的两个版本插件都是不能用的,都发不了短信,我自己改了就都能用,你说的什么测试正常都是骗人的。

接口都不是同一个接口,短信能发的出去才是见了鬼了呢!

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜博客 https://www.ludou.org/wordpress-register-check-user-phone-via-sms.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

104 条留言

点此留言
1 2 3 731
  1. Monicfenga

    我的网站使用的是BuddyPress,我应如何移植对应的注册项到BuddyPress的注册页面上?谢谢了。

  2. wang

    可以加一个发短信找回找回密码的功能吗

  3. 织梦

    点击发送验证码 怎么没反应

  4. 织梦

    提示验证码错误 一般是什么原因呢

    • 露兜

      @织梦 1、没按文中要求配置好相关参数,阿里云的密钥之类不正确
      2、阿里云短信余额不足
      3、服务器问题

  5. 大大

    不错的插件

  6. 麦田

    短信签名不支持个人申请,意味着现在不能用了?

    • 露兜

      @麦田 看起来个人是用不了了,短信签名还是短信发送的必填字段,没签名没法发送短信了。

    • 露兜

      @麦田 找了一下,可能是监管加强,支持个人开发者的短信接口几乎找不到了,如果有发现的话,可以提供看看。

1 2 3

发表留言