Merge branches 'dev_aliyun' and 'develop' of https://bdgit.educoder.net/Hjqreturn/educoder into develop
commit
3f008d154d
@ -1,11 +1,32 @@
|
|||||||
class Oauth::WechatController < Oauth::BaseController
|
class Oauth::WechatController < Oauth::BaseController
|
||||||
def create
|
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
|
||||||
|
|
||||||
|
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)
|
render_ok(new_user: new_user)
|
||||||
rescue Oauth::CreateOrFindWechatAccountService::Error => ex
|
rescue WechatOauth::Error => ex
|
||||||
render_error(ex.message)
|
render_error(ex.message)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
Loading…
Reference in new issue