From e2e9a389f6c15e81fc6d877d9077e9f5442c93c2 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Mon, 4 Nov 2019 16:49:21 +0800 Subject: [PATCH] qq auth --- app/controllers/admins/mirror_repositories_controller.rb | 1 - app/controllers/oauth/base_controller.rb | 5 +++++ app/services/admins/check_shixun_mirrors_service.rb | 2 +- config/initializers/omniauth.rb | 3 +++ config/routes.rb | 1 + 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/admins/mirror_repositories_controller.rb b/app/controllers/admins/mirror_repositories_controller.rb index aed8dc09e..63e4667d1 100644 --- a/app/controllers/admins/mirror_repositories_controller.rb +++ b/app/controllers/admins/mirror_repositories_controller.rb @@ -87,7 +87,6 @@ class Admins::MirrorRepositoriesController < Admins::BaseController end def check_shixun_mirrors! - return return unless request.format.html? Admins::CheckShixunMirrorsService.call diff --git a/app/controllers/oauth/base_controller.rb b/app/controllers/oauth/base_controller.rb index e2eb26a2a..a9c3f9fe4 100644 --- a/app/controllers/oauth/base_controller.rb +++ b/app/controllers/oauth/base_controller.rb @@ -1,9 +1,14 @@ class Oauth::BaseController < ActionController::Base include RenderHelper include LoginHelper + include ControllerRescueHandler skip_before_action :verify_authenticity_token + def auth_failure + render_error(params[:message]) + end + private def session_user_id diff --git a/app/services/admins/check_shixun_mirrors_service.rb b/app/services/admins/check_shixun_mirrors_service.rb index 868fab042..fc0744867 100644 --- a/app/services/admins/check_shixun_mirrors_service.rb +++ b/app/services/admins/check_shixun_mirrors_service.rb @@ -78,7 +78,7 @@ class Admins::CheckShixunMirrorsService < ApplicationService url = EduSetting.get('cloud_bridge') res = Faraday.get(url) - raise Error, '拉取镜像信息异常' if res && res['code'].nonzero? + raise Error, '拉取镜像信息异常' if res && res['code'].to_i != 0 res rescue => e diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb index 27ade9ed4..5bd5ceeea 100644 --- a/config/initializers/omniauth.rb +++ b/config/initializers/omniauth.rb @@ -1,4 +1,7 @@ OmniAuth.config.add_camelization 'qq', 'QQ' +OmniAuth.config.on_failure = Proc.new { |env| + OmniAuth::FailureEndpoint.new(env).redirect_to_failure +} oauth_config = {} begin diff --git a/config/routes.rb b/config/routes.rb index 60fbf2dad..796d1d989 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,6 +7,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/failure', to: 'oauth/base#auth_failure' resources :edu_settings scope '/api' do