thiry part oauth login

competitions
p31729568 6 years ago
parent 4d27d256ee
commit e273e5cf2e

@ -1,9 +1,9 @@
class Oauth::QQController < Oauth::BaseController
def create
user = Oauth::CreateOrFindQqAccountService.call(current_user, auth_hash)
user, new_user = Oauth::CreateOrFindQqAccountService.call(current_user, auth_hash)
successful_authentication(user)
render_ok
render_ok(new_user: new_user)
end
end

@ -1,10 +1,10 @@
class Oauth::WechatController < Oauth::BaseController
def create
user = Oauth::CreateOrFindWechatAccountService.call(current_user ,params)
user, new_user = Oauth::CreateOrFindWechatAccountService.call(current_user ,params)
successful_authentication(user)
render_ok
render_ok(new_user: new_user)
rescue Oauth::CreateOrFindWechatAccountService::Error => ex
render_error(ex.message)
end

@ -12,7 +12,9 @@ class Oauth::CreateOrFindQqAccountService < ApplicationService
open_user = OpenUsers::QQ.find_by(uid: params['uid'])
return open_user.user if open_user.present?
new_user = false
if user.blank? || !user.logged?
new_user = true
# 新用户
login = User.generate_login('q')
@user = User.new(login: login, nickname: params.dig('info', 'nickname'))
@ -26,9 +28,11 @@ class Oauth::CreateOrFindQqAccountService < ApplicationService
user.create_user_extension!(gender: gender)
end
OpenUsers::QQ.create!(user: user, uid: params['uid'])
new_open_user = OpenUsers::QQ.create!(user: user, uid: params['uid'])
Rails.cache.write(new_open_user.can_bind_cache_key, 1, expires_in: 1.hours) if new_user # 方便后面进行账号绑定
end
user
[user, new_user]
end
end

@ -44,7 +44,7 @@ class Oauth::CreateOrFindWechatAccountService < ApplicationService
Rails.cache.write(new_open_user.can_bind_cache_key, 1, expires_in: 1.hours) if new_user # 方便后面进行账号绑定
end
user
[user, new_user]
rescue WechatOauth::Error => ex
raise Error, ex.message
end

Loading…
Cancel
Save