From 4ed3a9d478f9c805eba1cb0438617cc7c10f1774 Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 11 Jul 2022 18:50:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:cherry=20pick=20doorkeeper?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/base_controller.rb | 19 ++++++++++++++----- config/initializers/doorkeeper.rb | 5 +++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/app/controllers/api/v1/base_controller.rb b/app/controllers/api/v1/base_controller.rb index 9170975b5..d97123f45 100644 --- a/app/controllers/api/v1/base_controller.rb +++ b/app/controllers/api/v1/base_controller.rb @@ -3,13 +3,22 @@ class Api::V1::BaseController < ApplicationController include Api::ProjectHelper include Api::UserHelper - before_action :doorkeeper_authorize! - skip_before_action :user_setup + # before_action :doorkeeper_authorize! + # skip_before_action :user_setup protected - def current_user - User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token - end + # def current_user + # #client方法对接,需要一直带着用户标识uid + # Rails.logger.info doorkeeper_token + # if doorkeeper_token && doorkeeper_token.resource_owner_id.blank? + # # return User.anonymous if params[:uid].nil? + # # tip_exception("2222") + # # return render_error('缺少用户标识!') if params[:uid].nil? + # User.current = User.find(params[:uid]) + # else + # User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token + # end + # end def require_manager_above @project = load_project diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index d80dcac68..512cb36ac 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true Doorkeeper.configure do + base_controller 'ApplicationController' # Change the ORM that doorkeeper will use (requires ORM extensions installed). # Check the list of supported ORMs here: https://github.com/doorkeeper-gem/doorkeeper#orms orm :active_record @@ -20,8 +21,8 @@ Doorkeeper.configure do access_token_generator '::Doorkeeper::JWT' admin_authenticator do - user = User.find_by_id(session[:www_user_id]) - unless user #&& user.admin_or_business? + user = current_user + unless user && user.admin_or_business? redirect_to root_url end end