Merge branches 'dev_aliyun' and 'develop' of https://bdgit.educoder.net/Hjqreturn/educoder into develop

sso
杨树明 5 years ago
commit 3f008d154d

@ -5,18 +5,19 @@ 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 '用户名或者密码错误' 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)
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

@ -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
Loading…
Cancel
Save