提交 7489a0fc 编写于 作者: G gongfuxiang

小程序登陆授权优化

上级 77b8f81a
......@@ -383,7 +383,7 @@ class User extends Common
if($result['status'] == 0)
{
// 先从数据库获取用户信息
$user = UserService::AppUserInfoHandle(null, 'baidu_openid', $result);
$user = UserService::AppUserInfoHandle(null, 'baidu_openid', $result['data']['openid']);
if(!empty($user))
{
// 用户状态
......@@ -395,7 +395,7 @@ class User extends Common
$ret = DataReturn('授权登录成功', 0, $user);
}
} else {
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']]);
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']['openid']]);
}
} else {
$ret = DataReturn($result['msg'], -10);
......@@ -488,10 +488,10 @@ class User extends Common
if($result['status'] == 0)
{
// 先从数据库获取用户信息
$user = UserService::AppUserInfoHandle(null, 'toutiao_openid', $result);
$user = UserService::AppUserInfoHandle(null, 'toutiao_openid', $result['data']['openid']);
if(empty($user))
{
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']]);
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']['openid']]);
} else {
// 用户状态
$ret = UserService::UserStatusCheck('id', $user['id']);
......@@ -579,13 +579,13 @@ class User extends Common
{
// 授权
$result = (new \base\QQ(MyC('common_app_mini_qq_appid'), MyC('common_app_mini_qq_appsecret')))->GetAuthSessionKey($this->data_post['authcode']);
if($result !== false)
if($result['status'] == 0)
{
// 先从数据库获取用户信息
$user = UserService::AppUserInfoHandle(null, 'qq_openid', $result);
$user = UserService::AppUserInfoHandle(null, 'qq_openid', $result['data']['openid']);
if(empty($user))
{
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result]);
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']['openid']]);
} else {
// 用户状态
$ret = UserService::UserStatusCheck('id', $user['id']);
......@@ -597,7 +597,7 @@ class User extends Common
}
}
} else {
$ret = DataReturn('授权登录失败', -100);
$ret = DataReturn($result['msg'], -10);
}
} else {
$ret = DataReturn('授权码为空', -1);
......
......@@ -251,7 +251,7 @@ class AppMiniUserService
if($result['status'] == 0)
{
// 先从数据库获取用户信息
$user = UserService::AppUserInfoHandle(null, 'baidu_openid', $result);
$user = UserService::AppUserInfoHandle(null, 'baidu_openid', $result['data']['openid']);
if(!empty($user))
{
// 用户状态
......@@ -263,7 +263,7 @@ class AppMiniUserService
$ret = DataReturn('授权登录成功', 0, $user);
}
} else {
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']]);
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']['openid']]);
}
} else {
$ret = DataReturn($result['msg'], -10);
......@@ -373,10 +373,10 @@ class AppMiniUserService
if($result['status'] == 0)
{
// 先从数据库获取用户信息
$user = UserService::AppUserInfoHandle(null, 'toutiao_openid', $result);
$user = UserService::AppUserInfoHandle(null, 'toutiao_openid', $result['data']['openid']);
if(empty($user))
{
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']]);
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']['openid']]);
} else {
// 用户状态
$ret = UserService::UserStatusCheck('id', $user['id']);
......@@ -461,13 +461,13 @@ class AppMiniUserService
{
// 授权
$result = (new \base\QQ(MyC('common_app_mini_qq_appid'), MyC('common_app_mini_qq_appsecret')))->GetAuthSessionKey($params['authcode']);
if($result !== false)
if($result['status'] == 0)
{
// 先从数据库获取用户信息
$user = UserService::AppUserInfoHandle(null, 'qq_openid', $result);
$user = UserService::AppUserInfoHandle(null, 'qq_openid', $result['data']['openid']);
if(empty($user))
{
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result]);
$ret = DataReturn('授权登录成功', 0, ['is_user_exist'=>0, 'openid'=>$result['data']['openid']]);
} else {
// 用户状态
$ret = UserService::UserStatusCheck('id', $user['id']);
......@@ -479,7 +479,7 @@ class AppMiniUserService
}
}
} else {
$ret = DataReturn('授权登录失败', -100);
$ret = DataReturn($result['msg'], -10);
}
} else {
$ret = DataReturn('授权码为空', -1);
......
......@@ -144,6 +144,10 @@ class Baidu
'sk' => $this->_appsecret,
];
$result = json_decode($this->HttpRequestPost('https://spapi.baidu.com/oauth/jscode2sessionkey', $data), true);
if(empty($result))
{
return ['status'=>-1, 'msg'=>'授权接口调用失败'];
}
if(!empty($result['openid']))
{
// 缓存SessionKey
......@@ -151,9 +155,9 @@ class Baidu
// 缓存存储
MyCache($key, $result);
return ['status'=>0, 'msg'=>'授权成功', 'data'=>$result['openid']];
return ['status'=>0, 'msg'=>'授权成功', 'data'=>$result];
}
return ['status'=>-1, 'msg'=>$result['error_description']];
return ['status'=>-1, 'msg'=>empty($result['error_description']) ? '授权接口异常错误' : $result['error_description']];
}
/**
......
......@@ -107,16 +107,20 @@ class QQ
// 请求获取session_key
$url = 'https://api.q.qq.com/sns/jscode2session?appid='.$this->_appid.'&secret='.$this->_appsecret.'&js_code='.$authcode.'&grant_type=authorization_code';
$result = $this->HttpRequestGet($url);
if(!empty($result) && !empty($result['openid']))
if(empty($result))
{
// 从缓存获取用户信息
return ['status'=>-1, 'msg'=>'授权接口调用失败'];
}
if(!empty($result['openid']))
{
// 缓存SessionKey
$key = 'qq_user_login_'.$result['openid'];
// 缓存存储
MyCache($key, $result);
return $result['openid'];
return ['status'=>0, 'msg'=>'授权成功', 'data'=>$result];
}
return false;
return ['status'=>-1, 'msg'=>empty($result['errmsg']) ? '授权接口异常错误' : $result['errmsg']];
}
/**
......
......@@ -56,11 +56,11 @@ class Toutiao
// 获取授权
$url = 'https://developer.toutiao.com/api/apps/jscode2session?appid='.$this->config['appid'].'&secret='.$this->config['secret'].'&code='.$params['authcode'];
$result = json_decode(RequestGet($url), true);
if(empty($result['openid']))
if(empty($result) || empty($result['openid']))
{
return ['status'=>-1, 'msg'=>$result['errmsg']];
return ['status'=>-1, 'msg'=>empty($result['errmsg']) ? '授权接口异常错误' : $result['errmsg']];
}
return ['status'=>0, 'msg'=>'授权成功', 'data'=>$result['openid']];
return ['status'=>0, 'msg'=>'授权成功', 'data'=>$result];
}
/**
......
......@@ -111,7 +111,11 @@ class Wechat
// 请求获取session_key
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$this->_appid.'&secret='.$this->_appsecret.'&js_code='.$params['authcode'].'&grant_type=authorization_code';
$result = $this->HttpRequestGet($url);
if(!empty($result) && !empty($result['openid']))
if(empty($result))
{
return ['status'=>-1, 'msg'=>'授权接口调用失败'];
}
if(!empty($result['openid']))
{
// 缓存SessionKey
$key = 'wechat_user_login_'.$result['openid'];
......@@ -120,7 +124,7 @@ class Wechat
MyCache($key, $result);
return ['status'=>0, 'msg'=>'授权成功', 'data'=>$result];
}
return ['status'=>-1, 'msg'=>$result['errmsg']];
return ['status'=>-1, 'msg'=>empty($result['errmsg']) ? '授权接口异常错误' : $result['errmsg']];
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册