90 lines
3.3 KiB
PHP
90 lines
3.3 KiB
PHP
<?php
|
||
// +------------------------------------------------+
|
||
// |http://www.cjango.com |
|
||
// +------------------------------------------------+
|
||
// | 修复BUG不是一朝一夕的事情,等我喝醉了再说吧! |
|
||
// +------------------------------------------------+
|
||
// | Author: 小陈叔叔 <Jason.Chen> |
|
||
// +------------------------------------------------+
|
||
namespace app\common\validate;
|
||
|
||
use app\common\model\Sms as SmsModel;
|
||
use think\Db;
|
||
use think\Validate;
|
||
use tools\Crypt;
|
||
|
||
class Member extends Validate
|
||
{
|
||
|
||
/**
|
||
* 验证规则
|
||
* @var array
|
||
*/
|
||
protected $rule = [
|
||
'username' => 'require|length:4,32|unique:member',
|
||
'password' => 'require|length:6,32',
|
||
'openid' => 'require',
|
||
'oldpass' => 'require|length:6,32|verifyPassword:',
|
||
'newpass' => 'require|length:6,32|different:oldpass',
|
||
'repass' => 'require|length:6,32|confirm:newpass',
|
||
'verify' => 'require|number|length:4|checkVerify:',
|
||
];
|
||
|
||
/**
|
||
* 提示信息
|
||
* @var array
|
||
*/
|
||
protected $message = [
|
||
'username.require' => '手机号必须填写',
|
||
'username.length' => '手机号长度应在:1-:2位之间',
|
||
'username.unique' => '手机号已经存在',
|
||
'password.require' => '密码必须填写',
|
||
'password.length' => '密码长度应在:1-:2位之间',
|
||
'oldpass.require' => '原始密码必须填写',
|
||
'oldpass.length' => '原始密码长度应在:1-:2位之间',
|
||
'oldpass.verifyPassword' => '原始密码不正确',
|
||
'newpass.require' => '新密码必须填写',
|
||
'newpass.length' => '新密码长度应在:1-:2位之间',
|
||
'newpass.different' => '新密码不能与原始密码相同',
|
||
'repass.require' => '确认密码必须填写',
|
||
'repass.length' => '确认密码长度应在:1-:2位之间',
|
||
'repass.confirm' => '两次输入的密码不一致',
|
||
'openid.require' => '绑定失败',
|
||
'verify.require' => '验证码必须填写',
|
||
'verify.number' => '验证码只允许数字',
|
||
'verify.length' => '请输入:rule位验证码',
|
||
];
|
||
|
||
/**
|
||
* 验证场景
|
||
* @var array
|
||
*/
|
||
protected $scene = [
|
||
'changepass' => ['oldpass', 'newpass', 'repass'],
|
||
'updatepass' => ['password'],
|
||
'openid' => ['openid'],
|
||
'forget' => ['newpass', 'repass'],
|
||
'register' => ['username', 'password'],
|
||
'login' => ['username' => 'require|length:4,32', 'password'],
|
||
'mobileRegister' => ['username', 'password', 'repass' => 'require|confirm:password'],
|
||
'bindmobile' => ['username', 'verify'],
|
||
];
|
||
|
||
protected function verifyPassword($value, $rule, $data)
|
||
{
|
||
return Crypt::uMd5($value) == Db::name('Member')->where('id', $data['uid'])->value('password');
|
||
}
|
||
|
||
protected function checkVerify($val, $rule, $data)
|
||
{
|
||
$res = SmsModel::where('mobile', $data['username'])->where('status', 0)->order('id desc')->find();
|
||
|
||
if ($res && $res['code'] == $val) {
|
||
$res->save(['status' => 1]);
|
||
return true;
|
||
} else {
|
||
return '验证码有误';
|
||
}
|
||
}
|
||
}
|