From daf7514afe3e8752fb7c29dc24a24d9c18a7a3b9 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Mon, 5 Dec 2022 17:46:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fixed=20=E7=AC=AC=E4=B8=89=E6=96=B9?= =?UTF-8?q?=E6=8E=88=E6=9D=83=E7=99=BB=E5=BD=95=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/oauth/callbacks_controller.rb | 5 ++++- config/initializers/omniauth.rb | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/controllers/oauth/callbacks_controller.rb b/app/controllers/oauth/callbacks_controller.rb index 513563d23..b97fdc023 100644 --- a/app/controllers/oauth/callbacks_controller.rb +++ b/app/controllers/oauth/callbacks_controller.rb @@ -2,6 +2,7 @@ class Oauth::CallbacksController < Oauth::BaseController def create process_callback rescue Exception => e + Rails.logger.info "授权失败:#{e}" tip_exception("授权失败") end @@ -38,7 +39,9 @@ class Oauth::CallbacksController < Oauth::BaseController new_user = true login = build_login_name(platform, auth_hash.info.nickname) mail = "#{login}@example.org" if mail.blank? - reg_result = autologin_register(login, mail, "Ec#{login}2022#", platform, nil, nickname) + code = %W(0 1 2 3 4 5 6 7 8 9) + rand_password = code.sample(10).join + reg_result = autologin_register(login, mail, rand_password, platform, nil, nickname) Rails.logger.info("[OAuth2] omniauth.auth [reg_result] #{reg_result} ") if reg_result[:message].blank? open_user = "OpenUsers::#{platform.to_s.capitalize}".constantize.create!(user_id: reg_result[:user][:id], uid: uid, extra: auth_hash.extra) diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb index 543b2249f..876dbad58 100644 --- a/config/initializers/omniauth.rb +++ b/config/initializers/omniauth.rb @@ -1,9 +1,9 @@ config = Rails.application.config_for(:configuration) OmniAuth.config.add_camelization 'qq', 'QQ' if config.dig("oauth", "qq") -OmniAuth.config.add_camelization 'github', 'GitHub' if config.dig("oauth", "github") -OmniAuth.config.add_camelization 'gitee', 'Gitee' if config.dig("oauth", "gitee") -OmniAuth.config.add_camelization 'wechat', 'Wechat' if config.dig("oauth", "wechat") +# OmniAuth.config.add_camelization 'github', 'GitHub' if config.dig("oauth", "github") +# OmniAuth.config.add_camelization 'gitee', 'Gitee' if config.dig("oauth", "gitee") +# OmniAuth.config.add_camelization 'wechat', 'Wechat' if config.dig("oauth", "wechat") OmniAuth.config.logger = Rails.logger OmniAuth.config.before_request_phase = nil OmniAuth.config.before_callback_phase = nil @@ -22,6 +22,6 @@ Rails.application.config.middleware.use OmniAuth::Builder do provider :gitee, config.dig("oauth", "gitee", "appid"), config.dig("oauth", "gitee", "secret"), { provider_ignores_state: true, scope: "user_info emails" } end if config.dig("oauth", "wechat").present? - provider :gitee, config.dig("oauth", "wechat", "appid"), config.dig("oauth", "wechat", "secret"), { provider_ignores_state: true, scope: "snsapi_login" } + provider :wechat, config.dig("oauth", "wechat", "appid"), config.dig("oauth", "wechat", "secret"), { provider_ignores_state: true, scope: "snsapi_login" } end end From ee27c9020596b2f27ea6c2112b6682a3606d39e4 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Tue, 6 Dec 2022 10:24:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fixed=20qq=E5=91=BD=E5=90=8D=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/open_users/qq.rb | 2 +- app/models/user.rb | 2 +- app/services/oauth/create_or_find_qq_account_service.rb | 4 ++-- config/routes.rb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/models/open_users/qq.rb b/app/models/open_users/qq.rb index ef1a4b470..204e870ec 100644 --- a/app/models/open_users/qq.rb +++ b/app/models/open_users/qq.rb @@ -16,7 +16,7 @@ # index_open_users_on_user_id (user_id) # -class OpenUsers::QQ < OpenUser +class OpenUsers::Qq < OpenUser def nickname extra&.[]('nickname') end diff --git a/app/models/user.rb b/app/models/user.rb index 04b5e9c3a..4288c4d4c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -119,7 +119,7 @@ class User < Owner has_one :user_extension, dependent: :destroy has_many :open_users, dependent: :destroy has_one :wechat_open_user, class_name: 'OpenUsers::Wechat' - has_one :qq_open_user, class_name: 'OpenUsers::QQ' + has_one :qq_open_user, class_name: 'OpenUsers::Qq' accepts_nested_attributes_for :user_extension, update_only: true has_many :fork_users, dependent: :destroy diff --git a/app/services/oauth/create_or_find_qq_account_service.rb b/app/services/oauth/create_or_find_qq_account_service.rb index dafcc3f88..9faaed1fd 100644 --- a/app/services/oauth/create_or_find_qq_account_service.rb +++ b/app/services/oauth/create_or_find_qq_account_service.rb @@ -10,7 +10,7 @@ class Oauth::CreateOrFindQqAccountService < ApplicationService def call new_user = false # 存在该用户 - open_user = OpenUsers::QQ.find_by(uid: params['uid']) + open_user = OpenUsers::Qq.find_by(uid: params['uid']) return [open_user.user, new_user] if open_user.present? if user.blank? || !user.logged? @@ -32,7 +32,7 @@ class Oauth::CreateOrFindQqAccountService < ApplicationService Util.download_file(params.dig('info', 'image'), avatar_path) end - new_open_user = 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 diff --git a/config/routes.rb b/config/routes.rb index bfeb6ef8b..233b40a82 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -20,7 +20,7 @@ Rails.application.routes.draw do get 'attachments/download/:id', to: 'attachments#show' get 'attachments/download/:id/:filename', to: 'attachments#show' - get 'auth/qq/callback', to: 'oauth/qq#create' + # get 'auth/qq/callback', to: 'oauth/qq#create' get 'auth/failure', to: 'oauth/base#auth_failure' get 'auth/cas/callback', to: 'oauth/cas#create' get 'auth/:provider/callback', to: 'oauth/callbacks#create'