Browse Source

优化登录数据生成

master
wanghongjun 1 year ago
parent
commit
6ed03a4925
  1. 12
      app/controller/wechat/Login.php

12
app/controller/wechat/Login.php

@ -86,11 +86,17 @@ class Login extends Base
$tokenArr = file_get_contents($getAccessTokenUrl);
$accessTokenArr = json_decode($tokenArr, true);
if (!$accessTokenArr || isset($accessTokenArr['errcode'])) {
return $this->buildFailed(ReturnCode::SESSION_TIMEOUT, '获取AccessToken失败');
}
//获取openId
$getUserIdUrl = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $accessTokenArr['access_token'] . '&openid=' . $accessTokenArr['openid'];
$userIdArr = file_get_contents($getUserIdUrl);
$userIdArr = json_decode($userIdArr, true);
if (!$userIdArr || isset($userIdArr['errcode'])) {
return $this->buildFailed(ReturnCode::SESSION_TIMEOUT, '获取用户信息失败');
}
return $this->doLogin($userIdArr['openid'], [
'nickname' => $userIdArr['nickname'],
@ -100,12 +106,14 @@ class Login extends Base
private function doLogin(string $openid, array $userDetail): Response {
$userInfo = (new WechatUser())->where('openid', $openid)->find();
if (!empty($userInfo)) {
if (empty($userInfo)) {
$userInfo = WechatUser::create([
'nickname' => $userDetail['nickname'],
'openid' => $openid,
'sex' => $userDetail['sex'] ?? 0,
'unionid' => $userDetail['unionid'] ?? '',
'create_time' => time(),
'headimgurl' => $userDetail['head_img'],
'headimgurl' => $userDetail['head_img'],
]);
} else {
if (!$userInfo['status']) {

Loading…
Cancel
Save