1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-07-04 07:51:32 +08:00
# Conflicts:
#	app/Http/Admin/Views/templates/main.volt
#	app/Http/Home/Controllers/ConnectController.php
#	app/Http/Home/Services/Connect.php
#	app/Services/OAuth/QQ.php
#	app/Services/OAuth/WeiBo.php
#	app/Services/OAuth/WeiXin.php
This commit is contained in:
xiaochong0302 2020-12-08 17:17:13 +08:00
commit 83580d330d
8 changed files with 63 additions and 50 deletions

View File

@ -115,12 +115,11 @@ class ConnectController extends Controller
$service = new ConnectService();
$openUser = $service->getOpenUserInfo($code, $state, $provider);
$connect = $service->getConnectRelation($openUser['id'], $provider);
$connect = $service->getConnectRelation($openUser['id'], $openUser['provider']);
if ($connect && $connect->deleted == 0) {
if ($this->authUser->id > 0) {
$service->bindUser($openUser, $provider);
$service->bindUser($openUser);
return $this->response->redirect(['for' => 'home.uc.account']);
} else {
$service->authLogin($connect);

View File

@ -30,7 +30,7 @@ class Connect extends Service
$openUser = json_decode($post['open_user'], true);
$this->handleConnectRelation($user, $openUser, $post['provider']);
$this->handleConnectRelation($user, $openUser);
$auth = $this->getAppAuth();
@ -55,18 +55,18 @@ class Connect extends Service
$user = $userRepo->findById($account->id);
$this->handleConnectRelation($user, $openUser, $post['provider']);
$this->handleConnectRelation($user, $openUser);
$auth = $this->getAppAuth();
$auth->saveAuthInfo($user);
}
public function bindUser($openUser, $provider)
public function bindUser(array $openUser)
{
$user = $this->getLoginUser();
$this->handleConnectRelation($user, $openUser, $provider);
$this->handleConnectRelation($user, $openUser);
}
public function authLogin(ConnectModel $connect)
@ -173,24 +173,27 @@ class Connect extends Service
return $auth;
}
protected function handleConnectRelation(UserModel $user, array $openUser, $provider)
protected function handleConnectRelation(UserModel $user, array $openUser)
{
$connectRepo = new ConnectRepo();
$connect = $connectRepo->findByOpenId($openUser['id'], $provider);
$connect = $connectRepo->findByOpenId($openUser['id'], $openUser['provider']);
if ($connect) {
if (time() - $connect->update_time > 86400) {
$connect->open_name = $openUser['name'];
$connect->open_avatar = $openUser['avatar'];
$connect->open_name = $openUser['name'];
$connect->open_avatar = $openUser['avatar'];
if ($connect->user_id != $user->id) {
$connect->user_id = $user->id;
}
if ($connect->deleted == 1) {
$connect->deleted = 0;
$connect->update();
}
$connect->update();
} else {
$connect = new ConnectModel();
@ -199,7 +202,7 @@ class Connect extends Service
$connect->open_id = $openUser['id'];
$connect->open_name = $openUser['name'];
$connect->open_avatar = $openUser['avatar'];
$connect->provider = $provider;
$connect->provider = $openUser['provider'];
$connect->create();
}

View File

@ -51,7 +51,7 @@
<div class="security-item">
<span class="icon"><i class="layui-icon layui-icon-email"></i></span>
<span class="title">邮箱绑定</span>
{% if account.phone %}
{% if account.email %}
<span class="summary">已绑定邮箱:{{ account.email|anonymous }}</span>
<span class="action"><a class="layui-btn layui-btn-sm btn-edit-email" href="{{ edit_email_url }}">修改</a></span>
{% else %}

View File

@ -7,6 +7,8 @@
{% set full_user_url = full_url({'for':'home.user.show','id':user.id}) %}
{% set qrcode_url = url({'for':'home.qrcode'},{'text':full_user_url}) %}
{% set user.area = user.area ? user.area : '火星' %}
{% set user.about = user.about ? user.about : '这个家伙很懒,什么都没留下!' %}
<div class="breadcrumb">
<span class="layui-breadcrumb">
@ -32,9 +34,7 @@
<p><span><i class="layui-icon layui-icon-location"></i></span><span>{{ user.area }}</span></p>
<p><span><i class="layui-icon layui-icon-time"></i></span><span>{{ date('Y-m-d H:i',user.active_time) }}</span></p>
</div>
{% if user.about %}
<div class="about">{{ user.about }}</div>
{% endif %}
<div class="about">{{ user.about }}</div>
</div>
{% set show_tab_courses = user.course_count > 0 %}

View File

@ -2,6 +2,7 @@
namespace App\Services\Logic\Account;
use App\Library\Utils\Password as PasswordUtil;
use App\Library\Validators\Common as CommonValidator;
use App\Models\Account as AccountModel;
use App\Models\ImUser as ImUserModel;
@ -42,6 +43,10 @@ class Register extends Service
$data['password'] = $accountValidator->checkPassword($post['password']);
$data['salt'] = PasswordUtil::salt();
$data['password'] = PasswordUtil::hash($data['password'], $data['salt']);
try {
$this->db->begin();

View File

@ -2,6 +2,7 @@
namespace App\Services\OAuth;
use App\Models\Connect as ConnectModel;
use App\Services\OAuth;
class QQ extends OAuth
@ -18,8 +19,8 @@ class QQ extends OAuth
'client_id' => $this->clientId,
'redirect_uri' => $this->redirectUri,
'state' => $this->getState(),
'scope' => 'get_user_info',
'response_type' => 'code',
'scope' => 'get_user_info',
];
return self::AUTHORIZE_URL . '?' . http_build_query($params);
@ -106,6 +107,7 @@ class QQ extends OAuth
$userInfo['id'] = $this->openId;
$userInfo['name'] = $data['nickname'];
$userInfo['avatar'] = $data['figureurl'];
$userInfo['provider'] = ConnectModel::PROVIDER_QQ;
return $userInfo;
}

View File

@ -2,6 +2,7 @@
namespace App\Services\OAuth;
use App\Models\Connect as ConnectModel;
use App\Services\OAuth;
class WeiBo extends OAuth
@ -81,6 +82,7 @@ class WeiBo extends OAuth
$userInfo['id'] = $data['id'];
$userInfo['name'] = $data['name'];
$userInfo['avatar'] = $data['profile_image_url'];
$userInfo['provider'] = ConnectModel::PROVIDER_WEIBO;
return $userInfo;
}

View File

@ -2,6 +2,7 @@
namespace App\Services\OAuth;
use App\Models\Connect as ConnectModel;
use App\Services\OAuth;
class WeiXin extends OAuth
@ -81,6 +82,7 @@ class WeiXin extends OAuth
$userInfo['id'] = $data['openid'];
$userInfo['name'] = $data['nickname'];
$userInfo['avatar'] = $data['headimgurl'];
$userInfo['provider'] = ConnectModel::PROVIDER_WEIXIN;
return $userInfo;
}