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

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

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

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

插件截图

插件功能

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

短信接口

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

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

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

使用方法

  1. 为了确保插件能够正常运行,推荐使用PHP 5.6以上的版本;
  2. 阿里云短信服务需要一个阿里云账户,也可以用淘宝账号登陆,没有的可以自己注册一个;
  3. 登陆阿里云后台:登陆地址
  4. 在阿里云控制台的 秘钥管理页面,点击 创建Access Key,并且确保处于 启用 状态,获取到 AccessKeyId 与 AccessKeySecret;
  5. 在阿里云 短信签名页面,添加短信签名,签名类型选择"验证码或短信通知",签名填你的网站名称。
    不懂的可以看阿里云的文档:申请短信签名
  6. 在阿里云 短信模板页面,添加短信模板,模板类型选择"验证码",模版名称自己填,模版内容可自行发挥,将验证码用变量${code}代替即可。如你可以设置模板内容为:
    ${code} 这是您的短信验证码,10分钟内有效。验证码 ${code}
    不懂的可以看阿里云的文档:申请短信模板
  7. 短信签名和短信模板待阿里云审核通过后,记住签名名称和模版CODE;
  8. 点此下载插件,并解压;
  9. 用文本编辑器(没有就用记事本)打开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';
  10. 将文件夹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日
* 将短信接口由阿里大于换成了阿里云短信
* 修复后台修改手机号的显示错误

-- 完 --

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

业余编程爱好者,主业是贝壳工艺品商人,感兴趣可以到我的淘宝店看看:海叔贝爷

46 条留言

点此留言
  1. stream

    大大,这个短信插件是包含在注册插件里面还是另外一个插件啊

    • 露兜

      @stream 单独一个插件,两个插件不能同时安装。

  2. 唯历史

    收藏先,有修改的需求,一定找你啊

  3. 臭虾米

    一直用你的一些代码,很好用。

  4. 十三

    大大 请教你个问题 在博客首页要实现如下的显示方式要怎么设置呢?

    最新文章

    2017.05.04
    文章1
    文章2
    文章3

    2017.05.03
    文章4
    文章5
    文章6

    2017.05.03
    文章7
    文章8
    文章9
    ……

    就是同一天发布的文章在列头只显示一个发布时间 网上找了好久都没看多相关的教程 囧

    • 露兜

      @十三 先通过get_posts或者WP_Query获取所有文章,然后循环判断文章日期,统一日期直接输出文章标题,遇到不同日期就输出文章日期和文章标题,依次类推

  5. 龙笑天

    实名制的大环境下,这个还是非常值得使用与借鉴的~

  6. 5942吃

    爱你!!!终于又看到你更新了

  7. 瑞刚博客

    都很实用的文章

  8. 初心

    支持woocommerce商城页面注册登陆吗

    • 露兜

      @初心 没测试过,你可以安装试试看。woocommerce如果用的是WordPress默认的登陆注册页面,应该可以,不过我印象中它是改过登陆注册界面了。

      • 初心

        @露兜 是更改注册和登录页面了,不过好像支持do_action动作,你的这个插件支持吗

        • 露兜

          @初心 woocommerce自行测试吧,就一个下载上传启用的事情。

  9. 盘古科技

    说的很对,感谢楼主!

  10. Zixie

    一直看教程成长,露兜大大的教程还会那么给力。

  11. 明月登楼

    这个还是很有必要性的!不过,一定要注意隐私保护!

  12. wpku

    请教个问题,自定义的登陆和注册页面如何调用短信验证?

    • 露兜

      @wpku 这里面的代码繁杂,只能用插件了。
      既然你能够写代码自定义登陆注册,那就看看插件的代码复制过去吧

  13. 织梦

    怎么设置支持手机号登陆

  14. piwu

    可以群发短信么

  15. 拓拓

    阿里云的短信是不是改版了啊,我用了这个,都是显示发送失败

    • 臧臧

      @拓拓 我也在测试,一直是显示发送失败呢?
      楼主可否抽空测试下?

      • 露兜

        @臧臧 改版只是改了域名,接口及参数等都未修改。阿里大于新网址:https://dayu.aliyun.com/
        另请注意插件目录下config.php中的参数是否设置正确,正确的设置应该如下类似(请按自己的填):
        <?php

        // 阿里大于 应用 AppKey
        $appkey = '23456783';

        // 阿里大于 应用 App Secret
        $secret = 'cmmmmm0abcdefd8h35861a801ac752d5';

        // 验证码短信签名
        $sign = '露兜';

        // 验证码短信模板ID,如SMS_123456789
        $template = 'SMS_59855563';

    • 露兜

      @拓拓 改版只是改了域名,接口及参数等都未修改。
      阿里大于新网址:https://dayu.aliyun.com/

      • 拓拓

        @露兜 你这个还是老版的,现在是直接整合到阿里云了。只有$accessKeyId $accessKeySecret 统一的。不会有应用这个东西了。

        • 露兜

          @拓拓 https://dayu.aliyun.com/
          目前叫阿里云·云通信,测试可以正常使用。
          阿里云短信服务和阿里云·云通信是两个不同的产品,不存在新旧版之分。

          • 拓拓

            @露兜 真的合并了呀。没法创建应用了。只有通用的了。我把你这个该了,已经发送成功了。

          • Richa

            @露兜 阿里大于现在已经不再接受新用户注册了,现在只能注册阿里云的短信服务。

          • 笃

            @露兜 按要求要求配置的,注册时总是验证码发送失败。

          • 露兜

            @ 短信接口已经更换到了阿里云短信服务,可以重新下载插件使用。文章内容的使用方法也已经更新,请参考。

  16. 小叶

    请问下 二次开发收费贵吗?我其实也在学,但是我有些小项目急需帮助和指导,所以咨询你。另外,也是觉得你的文章挺实用的,希望添加你为微信好友,方便沟通,可以吗?

  17. Kevin

    短信发送失败了,按说明配置的。阿里大于没有APPkey了,然后我用的$accessKeyId $accessKeySecret,还是失败的

    • 露兜

      @Kevin 插件已更换成阿里云短信接口了,文章中的使用方法也更新了,可以重新下载使用。

  18. q3389760

    一直发送失败,没有错误代码。
    从官网下载的php版demo,和插件里的lib文件都不一样了。

    • 露兜

      @q3389760 插件已更换成阿里云短信接口了,文章中的使用方法也更新了,可以重新下载使用。

  19. 我爱贝

    对于有需求做会员制网站的人群来说,这是一个非常好的功能了。开发一个适合国内的插件并不容易,这还是免费提供的。

  20. 豪

    都按说明设置好后,点击“获取验证码”,就报"验证码发送失败" ,请问这是什么问题,谢谢

    • 露兜

      @ 插件已更换成阿里云短信接口了,文章中的使用方法也更新了,可以重新下载使用。

  21. 老阎

    有手机号验证,图片验证就不必要存在了吧,建议上一个没有图片验证的版本。谢谢

    • 露兜

      @老阎 图片验证码的目的是防止有人用程序不停地获取短信验证码,白白消耗你的短信费!

  22. ENDsoft

    现在不能用啊 一直发送失败诶

    • 露兜

      @ENDsoft 插件已更换成阿里云短信接口了,文章中的使用方法也更新了,可以重新下载使用。

  23. 楚狂人

    很好的功能, 帮你发到知乎了

发表留言