提交 4c09a708 编写于 作者: D devil_gong

微信授权

上级 ecc52526
...@@ -48,22 +48,24 @@ class Service ...@@ -48,22 +48,24 @@ class Service
if(!empty($user)) if(!empty($user))
{ {
// 用户登录 // 用户登录
$ret = UserService::Login(['accounts'=>$user['username'], 'pwd'=>$user['username']]); return UserService::UserLoginHandle($user['id'] $params);
if($ret['code'] == 0)
{
return DataReturn('登录成功', 0, $ret['data']);
}
return $ret;
} }
} else { } else {
return DataReturn('用户openid为空', -1); return DataReturn('用户openid为空', -1);
} }
// 用户名
$username = empty($params['nickname']) ? '微信'.RandomString(6) : $params['username'].RandomString(6);
if(mb_strlen($username, 'utf-8') > 18)
{
$username = mb_substr($username, 0, 18);
}
// 游客数据 // 游客数据
$salt = GetNumberCode(6); $salt = GetNumberCode(6);
$data = [ $data = [
'weixin_web_openid' => $params['openid'], 'weixin_web_openid' => $params['openid'],
'username' => $params['openid'], 'username' => $username,
'nickname' => empty($params['nickname']) ? '' : $params['nickname'], 'nickname' => empty($params['nickname']) ? '' : $params['nickname'],
'gender' => empty($params['sex']) ? 0 : (isset($params['sex']) && $params['sex'] == 1) ? 2 : 1, 'gender' => empty($params['sex']) ? 0 : (isset($params['sex']) && $params['sex'] == 1) ? 2 : 1,
'province' => empty($params['province']) ? '' : $params['province'], 'province' => empty($params['province']) ? '' : $params['province'],
...@@ -71,7 +73,7 @@ class Service ...@@ -71,7 +73,7 @@ class Service
'avatar' => empty($params['headimgurl']) ? '' : $params['headimgurl'], 'avatar' => empty($params['headimgurl']) ? '' : $params['headimgurl'],
'status' => 0, 'status' => 0,
'salt' => $salt, 'salt' => $salt,
'pwd' => LoginPwdEncryption($params['openid'], $salt), 'pwd' => LoginPwdEncryption($username, $salt),
'add_time' => time(), 'add_time' => time(),
'upd_time' => time(), 'upd_time' => time(),
]; ];
......
...@@ -949,33 +949,49 @@ class UserService ...@@ -949,33 +949,49 @@ class UserService
); );
if(Db::name('User')->where(['id'=>$user['id']])->update($data) !== false) if(Db::name('User')->where(['id'=>$user['id']])->update($data) !== false)
{ {
// 登录记录 return self::UserLoginHandle($user['id'], $params);
if(self::UserLoginRecord($user['id'])) }
{ return DataReturn('登录失效,请重新登录', -100);
// 返回前端html代码 }
$body_html = [];
// 用户登录后钩子 /**
$hook_name = 'plugins_service_user_login_end'; * 登录处理
$ret = Hook::listen($hook_name, [ * @author Devil
'hook_name' => $hook_name, * @blog http://gong.gg/
'is_backend' => true, * @version 1.0.0
'params' => &$params, * @date 2019-05-24
'user_id' => $user['id'], * @desc description
'user' => Db::name('User')->field('id,username,nickname,mobile,email,gender,avatar,province,city,birthday')->where(['id'=>$user['id']])->find(), * @param [int] $user_id [用户id]
'body_html' => &$body_html, * @param [array] $params [输入参数]
]); */
if(isset($ret['code']) && $ret['code'] != 0) public static function UserLoginHandle($user_id, $params)
{ {
return $ret; // 登录记录
} if(self::UserLoginRecord($user_id]))
{
// 返回前端html代码
$body_html = [];
// 登录返回 // 用户登录后钩子
$result = [ $hook_name = 'plugins_service_user_login_end';
'body_html' => is_array($body_html) ? implode(' ', $body_html) : $body_html, $ret = Hook::listen($hook_name, [
]; 'hook_name' => $hook_name,
return DataReturn('登录成功', 0, $result); 'is_backend' => true,
'params' => &$params,
'user_id' => $user_id,
'user' => Db::name('User')->field('id,username,nickname,mobile,email,gender,avatar,province,city,birthday')->where(['id'=>$user_id])->find(),
'body_html' => &$body_html,
]);
if(isset($ret['code']) && $ret['code'] != 0)
{
return $ret;
} }
// 登录返回
$result = [
'body_html' => is_array($body_html) ? implode(' ', $body_html) : $body_html,
];
return DataReturn('登录成功', 0, $result);
} }
return DataReturn('登录失效,请重新登录', -100); return DataReturn('登录失效,请重新登录', -100);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册