Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
starsw001
ShopXO
提交
5ec2ee4f
ShopXO
项目概览
starsw001
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5ec2ee4f
编写于
3月 10, 2020
作者:
D
devil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
验证码逻辑优化
上级
00811f74
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
147 addition
and
106 deletion
+147
-106
application/service/UserService.php
application/service/UserService.php
+147
-106
未找到文件。
application/service/UserService.php
浏览文件 @
5ec2ee4f
...
...
@@ -1012,10 +1012,10 @@ class UserService
}
// 是否开启图片验证码
$verify_params
=
array
(
'key_prefix'
=>
'login'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
)
;
$verify_params
=
[
'key_prefix'
=>
'login'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
]
;
$verify
=
self
::
IsImaVerify
(
$params
,
$verify_params
,
MyC
(
'home_user_login_img_verify_state'
));
if
(
$verify
[
'code'
]
!=
0
)
{
...
...
@@ -1064,6 +1064,12 @@ class UserService
);
if
(
Db
::
name
(
'User'
)
->
where
([
'id'
=>
$user
[
'id'
]])
->
update
(
$data
)
!==
false
)
{
// 清除图片验证码
if
(
isset
(
$verify
)
&&
isset
(
$verify
[
'data'
])
&&
is_object
(
$verify
[
'data'
]))
{
$verify
[
'data'
]
->
Remove
();
}
return
self
::
UserLoginHandle
(
$user
[
'id'
],
$params
);
}
return
DataReturn
(
'登录失效,请重新登录'
,
-
100
);
...
...
@@ -1166,28 +1172,54 @@ class UserService
return
$ret
;
}
// 是否需要审核
$common_register_is_enable_audit
=
MyC
(
'common_register_is_enable_audit'
,
0
);
// 用户数据
$salt
=
GetNumberCode
(
6
);
$data
=
[
'upd_time'
=>
time
(),
'salt'
=>
$salt
,
'pwd'
=>
LoginPwdEncryption
(
$params
[
'pwd'
],
$salt
),
'status'
=>
(
$common_register_is_enable_audit
==
1
)
?
3
:
0
,
];
// 验证码校验
$verify_params
=
array
(
'key_prefix'
=>
'reg'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
);
if
(
$params
[
'type'
]
==
'sms'
)
{
$obj
=
new
\
base\Sms
(
$verify_params
);
}
else
if
(
$params
[
'type'
]
==
'email'
)
{
$obj
=
new
\
base\Email
(
$verify_params
);
}
else
if
(
$params
[
'type'
]
==
'username'
)
$verify_params
=
[
'key_prefix'
=>
'reg_'
.
md5
(
$params
[
'accounts'
]),
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
];
// 账户类型
switch
(
$params
[
'type'
])
{
// 是否开启图片验证码
$verify_params
[
'key_prefix'
]
=
'images_verify_reg'
;
$verify
=
self
::
IsImaVerify
(
$params
,
$verify_params
,
MyC
(
'home_user_register_img_verify_state'
));
if
(
$verify
[
'code'
]
!=
0
)
{
return
$verify
;
}
// 短信
case
'sms'
:
$data
[
'mobile'
]
=
$params
[
'accounts'
];
$obj
=
new
\
base\Sms
(
$verify_params
);
break
;
// 邮箱
case
'email'
:
$data
[
'email'
]
=
$params
[
'accounts'
];
$obj
=
new
\
base\Email
(
$verify_params
);
break
;
// 默认 账号
default
:
$data
[
'username'
]
=
$params
[
'accounts'
];
// 是否开启图片验证码
// images_verify_reg 由前端图片验证码传递的 type 一致
$verify_params
[
'key_prefix'
]
=
'images_verify_reg'
;
$verify
=
self
::
IsImaVerify
(
$params
,
$verify_params
,
MyC
(
'home_user_register_img_verify_state'
));
if
(
$verify
[
'code'
]
!=
0
)
{
return
$verify
;
}
}
// 验证码校验
// sms, email
if
(
isset
(
$obj
)
&&
is_object
(
$obj
))
{
// 是否已过期
...
...
@@ -1202,26 +1234,6 @@ class UserService
}
}
// 是否需要审核
$common_register_is_enable_audit
=
MyC
(
'common_register_is_enable_audit'
,
0
);
// 用户数据
$salt
=
GetNumberCode
(
6
);
$data
=
[
'upd_time'
=>
time
(),
'salt'
=>
$salt
,
'pwd'
=>
LoginPwdEncryption
(
$params
[
'pwd'
],
$salt
),
'status'
=>
(
$common_register_is_enable_audit
==
1
)
?
3
:
0
,
];
if
(
$params
[
'type'
]
==
'sms'
)
{
$data
[
'mobile'
]
=
$params
[
'accounts'
];
}
else
if
(
$params
[
'type'
]
==
'email'
)
{
$data
[
'email'
]
=
$params
[
'accounts'
];
}
else
{
$data
[
'username'
]
=
$params
[
'accounts'
];
}
// 数据添加
$user_ret
=
self
::
UserInsert
(
$data
,
$params
);
if
(
$user_ret
[
'code'
]
==
0
)
...
...
@@ -1389,12 +1401,12 @@ class UserService
return
DataReturn
(
'暂时关闭用户注册'
);
}
// 验证码
公共
基础参数
$verify_params
=
array
(
'key_prefix'
=>
'reg'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
)
;
// 验证码基础参数
$verify_params
=
[
'key_prefix'
=>
'reg'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
]
;
// 是否开启图片验证码
$verify
=
self
::
IsImaVerify
(
$params
,
$verify_params
,
MyC
(
'home_img_verify_state'
));
...
...
@@ -1410,23 +1422,34 @@ class UserService
return
$ret
;
}
// 验证码基础参数 key
$verify_params
[
'key_prefix'
]
=
'reg_'
.
md5
(
$params
[
'accounts'
]);
// 发送验证码
$code
=
GetNumberCode
(
4
);
if
(
$params
[
'type'
]
==
'sms'
)
switch
(
$params
[
'type'
]
)
{
$obj
=
new
\
base\Sms
(
$verify_params
);
$status
=
$obj
->
SendCode
(
$params
[
'accounts'
],
$code
,
MyC
(
'home_sms_user_reg'
));
}
else
if
(
$params
[
'type'
]
==
'email'
)
{
$obj
=
new
\
base\Email
(
$verify_params
);
$email_param
=
array
(
'email'
=>
$params
[
'accounts'
],
'content'
=>
MyC
(
'home_email_user_reg'
),
'title'
=>
MyC
(
'home_site_name'
)
.
' - 用户注册'
,
'code'
=>
$code
,
);
$status
=
$obj
->
SendHtml
(
$email_param
);
}
else
{
return
DataReturn
(
'该类型不支持验证码发送'
,
-
2
);
// 短信
case
'sms'
:
$obj
=
new
\
base\Sms
(
$verify_params
);
$status
=
$obj
->
SendCode
(
$params
[
'accounts'
],
$code
,
MyC
(
'home_sms_user_reg'
));
break
;
// 邮箱
case
'email'
:
$obj
=
new
\
base\Email
(
$verify_params
);
$email_params
=
array
(
'email'
=>
$params
[
'accounts'
],
'content'
=>
MyC
(
'home_email_user_reg'
),
'title'
=>
MyC
(
'home_site_name'
)
.
' - 用户注册'
,
'code'
=>
$code
,
);
$status
=
$obj
->
SendHtml
(
$email_params
);
break
;
// 默认
default
:
return
DataReturn
(
'该类型不支持验证码发送'
,
-
2
);
}
// 状态
...
...
@@ -1460,12 +1483,12 @@ class UserService
return
DataReturn
(
'参数错误'
,
-
10
);
}
// 验证码
公共
基础参数
$verify_params
=
array
(
'key_prefix'
=>
'forget'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
)
;
// 验证码基础参数
$verify_params
=
[
'key_prefix'
=>
'forget'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
]
;
// 是否开启图片验证码
$verify
=
self
::
IsImaVerify
(
$params
,
$verify_params
,
MyC
(
'home_img_verify_state'
));
...
...
@@ -1474,42 +1497,50 @@ class UserService
return
$verify
;
}
// 账户是否存在
// 账户是否存在
,并返回账户格式类型
$ret
=
self
::
UserForgetAccountsCheck
(
$params
[
'accounts'
]);
if
(
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
}
// 验证码基础参数 key
$verify_params
[
'key_prefix'
]
=
'forget_'
.
md5
(
$params
[
'accounts'
]);
// 验证码
$code
=
GetNumberCode
(
4
);
//
手机
if
(
$ret
[
'data'
]
==
'mobile'
)
//
账户字段类型
switch
(
$ret
[
'data'
]
)
{
$obj
=
new
\
base\Sms
(
$verify_params
);
$status
=
$obj
->
SendCode
(
$params
[
'accounts'
],
$code
,
MyC
(
'home_sms_user_forget_pwd'
));
// 手机
case
'mobile'
:
$obj
=
new
\
base\Sms
(
$verify_params
);
$status
=
$obj
->
SendCode
(
$params
[
'accounts'
],
$code
,
MyC
(
'home_sms_user_forget_pwd'
));
break
;
// 邮箱
}
else
if
(
$ret
[
'data'
]
==
'email'
)
{
$obj
=
new
\
base\Email
(
$verify_params
);
$email_param
=
array
(
// 邮箱
case
'email'
:
$obj
=
new
\
base\Email
(
$verify_params
);
$email_params
=
[
'email'
=>
$params
[
'accounts'
],
'content'
=>
MyC
(
'home_email_user_forget_pwd'
),
'title'
=>
MyC
(
'home_site_name'
)
.
' - '
.
'密码找回'
,
'code'
=>
$code
,
);
$status
=
$obj
->
SendHtml
(
$email_param
);
}
else
{
return
DataReturn
(
'手机/邮箱格式有误'
,
-
1
);
];
$status
=
$obj
->
SendHtml
(
$email_params
);
break
;
// 默认
default
:
return
DataReturn
(
'手机/邮箱格式有误'
,
-
1
);
}
// 状态
if
(
$status
)
{
// 清除验证码
if
(
isset
(
$verify
[
'data'
])
&&
is_object
(
$verify
[
'data'
]))
// 清除
图片
验证码
if
(
isset
(
$verify
)
&&
isset
(
$verify
[
'data'
])
&&
is_object
(
$verify
[
'data'
]))
{
$verify
[
'data'
]
->
Remove
();
}
...
...
@@ -1591,18 +1622,28 @@ class UserService
}
// 验证码校验
$verify_params
=
array
(
'key_prefix'
=>
'forget'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
);
if
(
$ret
[
'data'
]
==
'mobile'
)
{
$obj
=
new
\
base\Sms
(
$verify_params
);
}
else
if
(
$ret
[
'data'
]
==
'email'
)
$verify_params
=
[
'key_prefix'
=>
'forget_'
.
md5
(
$params
[
'accounts'
]),
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
];
switch
(
$ret
[
'data'
])
{
$obj
=
new
\
base\Email
(
$verify_params
);
// 手机
case
'mobile'
:
$obj
=
new
\
base\Sms
(
$verify_params
);
break
;
// 邮箱
case
'email'
:
$obj
=
new
\
base\Email
(
$verify_params
);
break
;
// 默认
default
:
return
DataReturn
(
'手机/邮箱格式有误'
,
-
1
);
}
// 是否已过期
if
(
!
$obj
->
CheckExpire
())
{
...
...
@@ -1625,6 +1666,8 @@ class UserService
$ret
=
SafetyService
::
UserLoginPwdUpdate
(
$params
[
'accounts'
],
$user
[
'id'
],
$params
[
'pwd'
]);
if
(
$ret
[
'code'
]
!=
0
)
{
// 清除验证码
$obj
->
Remove
();
return
DataReturn
(
'操作成功'
,
0
);
}
return
$ret
;
...
...
@@ -1986,10 +2029,10 @@ class UserService
}
// 验证码校验
$verify_params
=
array
(
'key_prefix'
=>
'bind'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
)
)
;
$verify_params
=
[
'key_prefix'
=>
'bind_'
.
md5
(
$params
[
'mobile'
])
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
)
]
;
$obj
=
new
\
base\Sms
(
$verify_params
);
// 是否已过期
...
...
@@ -2097,9 +2140,8 @@ class UserService
// 清除验证码
$obj
->
Remove
();
return
DataReturn
(
'绑定成功'
,
0
,
self
::
AppUserInfoHandle
(
$user_id
));
}
else
{
return
DataReturn
(
'绑定失败'
,
-
100
);
}
return
DataReturn
(
'绑定失败'
,
-
100
);
}
/**
...
...
@@ -2134,11 +2176,11 @@ class UserService
}
// 验证码公共基础参数
$verify_params
=
array
(
'key_prefix'
=>
'bind'
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
)
;
$verify_params
=
[
'key_prefix'
=>
'bind_'
.
md5
(
$params
[
'mobile'
])
,
'expire_time'
=>
MyC
(
'common_verify_expire_time'
),
'time_interval'
=>
MyC
(
'common_verify_time_interval'
),
]
;
// 发送验证码
$obj
=
new
\
base\Sms
(
$verify_params
);
...
...
@@ -2149,9 +2191,8 @@ class UserService
if
(
$status
)
{
return
DataReturn
(
'发送成功'
,
0
);
}
else
{
return
DataReturn
(
'发送失败'
.
'['
.
$obj
->
error
.
']'
,
-
100
);
}
return
DataReturn
(
'发送失败'
.
'['
.
$obj
->
error
.
']'
,
-
100
);
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录