From 20a2cd22ef8f918a3074505b1bfb2ac3dabcfdc4 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 21 Feb 2020 19:15:07 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/oauth/wechat_controller.rb | 31 ++++++++++++++++++---- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/app/controllers/oauth/wechat_controller.rb b/app/controllers/oauth/wechat_controller.rb index f95116535..47dc53ccc 100644 --- a/app/controllers/oauth/wechat_controller.rb +++ b/app/controllers/oauth/wechat_controller.rb @@ -1,11 +1,32 @@ class Oauth::WechatController < Oauth::BaseController def create - user, new_user = Oauth::CreateOrFindWechatAccountService.call(current_user ,params) + # user, new_user = Oauth::CreateOrFindWechatAccountService.call(current_user ,params) - successful_authentication(user) if !new_user + begin + code = params['code'].to_s.strip + tip_exception("code不能为空") if code.blank? + new_user = false - render_ok(new_user: new_user) - rescue Oauth::CreateOrFindWechatAccountService::Error => ex - render_error(ex.message) + result = WechatOauth::Service.access_token(code) + result = WechatOauth::Service.user_info(result['access_token'], result['openid']) + + # 存在该用户 + open_user = OpenUsers::Wechat.find_by(uid: result['unionid']) + if open_user.present? && open_user.user.present? + successful_authentication(open_user.user) + else + if current_user.blank? || !current_user.logged? + new_user = true + set_session_openid(result['openid']) + set_session_unionid(result['unionid']) + else + OpenUsers::Wechat.create!(user: current_user, uid: result['unionid']) + end + end + + render_ok(new_user: new_user) + rescue WechatOauth::Error => ex + render_error(ex.message) + end end end \ No newline at end of file From 6f12ed6e843a0595ca773357e983c5b9d280058f Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 21 Feb 2020 19:18:36 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/bind_users_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/bind_users_controller.rb b/app/controllers/bind_users_controller.rb index 8fe5f54a7..d1f0f84ac 100644 --- a/app/controllers/bind_users_controller.rb +++ b/app/controllers/bind_users_controller.rb @@ -5,13 +5,13 @@ class BindUsersController < ApplicationController # user = CreateBindUserService.call(create_params) # - raise Error, '系统错误' if session_unionid.blank? + raise Error, '系统错误' if session[:unionid].blank? bind_user = User.try_to_login(params[:username], params[:password]) raise Error, '用户名或者密码错误' if bind_user.blank? raise Error, '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s) - OpenUsers::Wechat.create!(user: bind_user, uid: session_unionid) + OpenUsers::Wechat.create!(user: bind_user, uid: session[:unionid]) successful_authentication(bind_user) render_ok From 859d65b511a6bc40ec6ad4623631a2dbf166402e Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 21 Feb 2020 19:37:23 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/bind_users_controller.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/bind_users_controller.rb b/app/controllers/bind_users_controller.rb index d1f0f84ac..f6fcc122b 100644 --- a/app/controllers/bind_users_controller.rb +++ b/app/controllers/bind_users_controller.rb @@ -5,18 +5,18 @@ class BindUsersController < ApplicationController # user = CreateBindUserService.call(create_params) # - raise Error, '系统错误' if session[:unionid].blank? + tip_exception '系统错误' if session[:unionid].blank? bind_user = User.try_to_login(params[:username], params[:password]) - raise Error, '用户名或者密码错误' if bind_user.blank? - raise Error, '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s) + tip_exception '用户名或者密码错误' if bind_user.blank? + tip_exception '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s) OpenUsers::Wechat.create!(user: bind_user, uid: session[:unionid]) successful_authentication(bind_user) render_ok - rescue ApplicationService::Error => ex - render_error(ex.message) + rescue Exception => e + render_error(e.message) end def new_user From d9f516a37ed9c91532b5f88f99faa585c4b7ca4b Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 21 Feb 2020 20:37:03 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E6=97=B6=E6=9C=AA=E6=A0=A1=E9=AA=8C=E5=AF=86?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/bind_users_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/bind_users_controller.rb b/app/controllers/bind_users_controller.rb index f6fcc122b..91b7c42fd 100644 --- a/app/controllers/bind_users_controller.rb +++ b/app/controllers/bind_users_controller.rb @@ -8,7 +8,7 @@ class BindUsersController < ApplicationController tip_exception '系统错误' if session[:unionid].blank? bind_user = User.try_to_login(params[:username], params[:password]) - tip_exception '用户名或者密码错误' if bind_user.blank? + tip_exception '用户名或者密码错误' if bind_user.check_password?(params[:password].to_s) tip_exception '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s) OpenUsers::Wechat.create!(user: bind_user, uid: session[:unionid]) From 504690d25154e67a7a24c6eb1d9a197af4ff8e81 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 21 Feb 2020 20:37:05 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E6=97=B6=E6=9C=AA=E6=A0=A1=E9=AA=8C=E5=AF=86?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/bind_users_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/bind_users_controller.rb b/app/controllers/bind_users_controller.rb index 91b7c42fd..cbe0a8c13 100644 --- a/app/controllers/bind_users_controller.rb +++ b/app/controllers/bind_users_controller.rb @@ -8,7 +8,8 @@ class BindUsersController < ApplicationController tip_exception '系统错误' if session[:unionid].blank? bind_user = User.try_to_login(params[:username], params[:password]) - tip_exception '用户名或者密码错误' if bind_user.check_password?(params[:password].to_s) + return render_error('用户名或者密码错误') if bind_user.blank? + tip_exception '用户名或者密码错误' unless bind_user.check_password?(params[:password].to_s) tip_exception '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s) OpenUsers::Wechat.create!(user: bind_user, uid: session[:unionid]) From 78ce317f8df037121fbe09bf266d21329839b941 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Fri, 21 Feb 2020 20:38:05 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E6=97=B6=E6=9C=AA=E6=A0=A1=E9=AA=8C=E5=AF=86?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/bind_users_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/bind_users_controller.rb b/app/controllers/bind_users_controller.rb index cbe0a8c13..e614322e8 100644 --- a/app/controllers/bind_users_controller.rb +++ b/app/controllers/bind_users_controller.rb @@ -8,7 +8,7 @@ class BindUsersController < ApplicationController tip_exception '系统错误' if session[:unionid].blank? bind_user = User.try_to_login(params[:username], params[:password]) - return render_error('用户名或者密码错误') if bind_user.blank? + tip_exception '用户名或者密码错误' if bind_user.blank? tip_exception '用户名或者密码错误' unless bind_user.check_password?(params[:password].to_s) tip_exception '该账号已被绑定,请更换其他账号进行绑定' if bind_user.bind_open_user?(params[:type].to_s)