open user: unbind api

competitions
p31729568 5 years ago
parent aa30db04f4
commit c4578b6d48

@ -0,0 +1,13 @@
class Users::third_parties_controller < Users::BaseAccountController
def destroy
current_open_users.destroy!
render_ok
end
private
def current_open_users
@_current_third_party ||= observed_user.open_users.find(params[:id])
end
end

@ -3,6 +3,8 @@ class OpenUser < ApplicationRecord
validates :uid, presence: true, uniqueness: { scope: :type }
serialize :extra, JSON
def can_bind_cache_key
"open_user:#{type}:#{uid}:can_bind"
end

@ -1,3 +1,9 @@
class OpenUsers::QQ < OpenUser
def nickname
extra&.[]('nickname')
end
def en_type
'qq'
end
end

@ -1,3 +1,9 @@
class OpenUsers::Wechat < OpenUser
def nickname
extra&.[]('nickname')
end
def en_type
'qq'
end
end

@ -28,7 +28,7 @@ class Oauth::CreateOrFindQqAccountService < ApplicationService
user.create_user_extension!(gender: gender)
end
new_open_user = OpenUsers::QQ.create!(user: user, uid: params['uid'])
new_open_user = OpenUsers::QQ.create!(user: user, uid: params['uid'], extra: params.dig('extra', 'raw_info'))
Rails.cache.write(new_open_user.can_bind_cache_key, 1, expires_in: 1.hours) if new_user # 方便后面进行账号绑定
end

@ -39,7 +39,7 @@ class Oauth::CreateOrFindWechatAccountService < ApplicationService
Util.download_file(result['headimgurl'], avatar_path)
end
new_open_user= OpenUsers::Wechat.create!(user: user, uid: result['unionid'])
new_open_user= OpenUsers::Wechat.create!(user: user, uid: result['unionid'], extra: result)
Rails.cache.write(new_open_user.can_bind_cache_key, 1, expires_in: 1.hours) if new_user # 方便后面进行账号绑定
end

@ -27,3 +27,9 @@ json.base_info_completed user.profile_completed?
json.all_certified user.all_certified?
json.has_password user.hashed_password.present?
json.open_users do
json.array! user.open_users do |open_user|
json.extract! open_user, :id, :en_type, :nickname
end
end

@ -116,6 +116,7 @@ Rails.application.routes.draw do
resource :auth_attachment, only: [:create]
resource :authentication_apply, only: [:create]
resource :professional_auth_apply, only: [:create]
resources :open_users, only: [:destroy]
end
end
end

@ -0,0 +1,5 @@
class AddExtraToOpenUsers < ActiveRecord::Migration[5.2]
def change
add_column :open_users, :extra, :text
end
end
Loading…
Cancel
Save