维清手机号注册登录 12.3正式版(wq_smslogin)
插件特色[*]本插件是真正的手机号注册登录(与美团、大众点评等的手机号注册流程完全一样),并非仅仅在原来的注册表单上加一个手机号。
本插件的注册流程是“输入手机号->获取动态码->输入动态码->设置密码->注册成功”;
本插件的登录流程是“输入手机号->输入密码->登录成功”;
本插件的找回密码流程是“输入手机号->获取动态码->输入动态码->设置新密码”;
[*]本插件使用阿里大鱼短信接口,每条短信只需4.5分钱,低价格高稳定性,目前阿里大鱼有注册送10元代金券活动(注册阿里大鱼);
如何体验?
PC版体验方法:
访问维清演示站:http://demo.wikin.cn/forum.php,然后点击右上角的注册、登录、找回密码即可体验本插件相关功能。
手机版体验方法:
1、戳我查看维清手机号注册登录体验二维码
2、扫描二维码体验维清手机号注册登录功能!!!
插件简介
本插件用于为网站提供手机号注册、登录、找回密等功能,目前使用手机号注册登录的网站已经很多,用户也都已经有了使用手机号注册登录网站的习惯,使用本插件不仅可以提高用户体验还可以收集用户手机号方便发送活动通知等信息。
功能亮点
[*]同时支持电脑版与手机版手机号注册、登录、找回密码;
[*]只要输入手机号即可注册成功,无需要输入用户名邮箱等,降低用户注册门槛,提高用户体验;
[*]手机号同步到个人资料中,活动等其他模块可直接调用手机号;
[*]系统随机生成用户名,注册成功后也可修改用户名;
[*]后台提供完整的短信发送日志,支持按用户名、手机号、IP进行搜索,带历史记录清除功能;
[*]后台提供完整的绑定记录功能,支持按用户名、手机号进行搜索
[*]支持优先手机号注册,开启后优先显示手机号注册;
[*]支持优先手机号登录,开启后优先显示手机号登录;
[*]支持优先手机号找回密码,开启后优先显示手机号找回密码;
[*]支持强制手机号注册,开启后只能通过手机号注册;
[*]支持强制手机号登录,开启后只能通过手机号登录;
[*]支持强制手机号找回密码,开启后只能通过手机号找回密码;
[*]支持输入图形验证码后再发送动态码,防止恶意发短信;
[*]可设置同一用户名每天可发送的短信数量,防止恶意发短信;
[*]可设置同一IP每天可发送的短信数量,防止恶意发短信;
[*]可设置同一手机号每天可发送的短信数量,防止恶意发短信;
如何体验?
PC版体验方法:
访问维清演示站:http://demo.wikin.cn/forum.php,然后点击右上角的注册、登录、找回密码即可体验本插件相关功能。
手机版体验方法:
1、戳我查看维清手机号注册登录体验二维码
2、扫描二维码体验维清手机号注册登录功能!!!
楼主发贴辛苦了,谢谢楼主分享!
这东西我收了!谢谢楼主!dz插件网真好! 针对维清手机号注册登录插件的常见问题,以下是专业级解决方案指南:
一、短信验证码发送失败排查流程
1. 接口配置验证
- 检查阿里大鱼接口签名算法实现(参考Discuz短信接口开发规范)
- 确认短信模板ID与审核通过的模板内容完全匹配
- 调试模式开启后查看API返回原始数据(需修改插件core/sms.class.php中的调试参数)
2. 频率限制穿透方案
- 在插件设置中启用"动态令牌+图形验证码"双重验证机制
- 修改plugins/wq_smslogin/hook.class.php中的频率检测逻辑:
// 示例代码改进
$dailyLimit = C::t('common_setting')->fetch('wq_smslogin_daily_limit');
if($this->_getTodayCount($mobile) >= $dailyLimit){
$this->_logFailedAttempt($mobile, 'OVER_LIMIT');
throw new Exception('mobile_daily_limit_reached');
}
二、手机号唯一性冲突解决方案
1. 数据库层面
- 在pre_common_member表新增mobile字段并建立唯一索引
- 在插件安装脚本中添加:
ALTER TABLE `pre_common_member`
ADD COLUMN `mobile` VARCHAR(11) NOT NULL DEFAULT '' COMMENT '手机号' AFTER `email`,
ADD UNIQUE INDEX `mobile_unique` (`mobile`);
2. 业务逻辑增强
- 在注册流程中增加异步验证接口:
// plugins/wq_smslogin/register.class.php
public function check_mobile(){
$mobile = trim($_GET['mobile']);
$exists = C::t('#wq_smslogin#member_mobile')->check_exists($mobile);
echo $exists ? 'false' : 'true';
exit;
}
三、移动端适配优化方案
1. 响应式布局增强
- 在插件模板文件template/mobile/register.htm中添加viewport适配:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
2. 手势操作优化
- 增加触摸事件处理:
// static/js/mobile.js
document.getElementById('sms-btn').addEventListener('touchstart', function(){
if(!this.classList.contains('disabled')){
this.classList.add('active');
}
});
四、安全加固建议
1. 数据加密方案
- 对存储的手机号进行AES加密:
// source/class/class_helper.php
function encrypt_mobile($mobile){
$key = md5($_G['config']['security']['authkey']);
return base64_encode(openssl_encrypt($mobile, 'AES-256-CBC', $key, 0, substr($key, 0, 16)));
}
2. 审计日志增强
- 修改日志记录方式为分级存储:
// plugins/wq_smslogin/log.class.php
public function log($type, $data){
$logLevel = $this->_determineLogLevel($data);
C::t('#wq_smslogin#log')->insert(array(
'logtype' => $type,
'loglevel' => $logLevel,
'logdata' => serialize($data),
'dateline' => TIMESTAMP
));
}
五、性能优化方案
1. 缓存策略优化
- 在短信验证环节加入Redis缓存:
// core/sms_verify.class.php
public function cacheCode($mobile, $code){
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->setex("sms:{$mobile}", 600, $code);
}
2. 数据库查询优化
- 对高频查询建立复合索引:
ALTER TABLE `pre_wq_smslogin_log`
ADD INDEX `composite_idx` (`mobile`,`ip`,`dateline`);
六、异常处理规范
1. 错误代码标准化
- 在语言包中加入详细错误说明:
// plugins/wq_smslogin/language/lang_error.php
$errorCode = array(
'MOBILE_FORMAT_INVALID' => array(40001, '手机号格式不正确'),
'SMS_SEND_FAILED' => array(50001, '短信服务暂不可用')
);
2. 事务回滚机制
- 在关键操作中启用数据库事务:
// register.class.php
try {
DB::transaction();
// 执行注册流程
DB::commit();
} catch(Exception $e) {
DB::rollback();
log_error($e);
}
建议遇到具体问题时提供以下信息以便快速定位:
1. 问题发生时的完整请求参数
2. 服务器error_log中的相关记录
3. 插件配置截图(敏感信息可打码)
4. 复现问题的具体操作步骤
如需深入调试,可通过在插件目录创建debug.php文件并加入以下代码启用开发者模式:
<?php
define('DEBUG_WQ_SMSLOGIN', true);
error_reporting(E_ALL);
ini_set('display_errors', 1);
(注意:调试完成后务必删除该文件)
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]