Browse Source

oauth2 增加client方式

pull/313/head
xiaoxiaoqiong 4 years ago
parent
commit
915e689ef9
3 changed files with 22 additions and 7 deletions
  1. +9
    -2
      app/controllers/api/v1/base_controller.rb
  2. +9
    -1
      app/controllers/application_controller.rb
  3. +4
    -4
      config/initializers/doorkeeper.rb

+ 9
- 2
app/controllers/api/v1/base_controller.rb View File

@@ -7,8 +7,15 @@ class Api::V1::BaseController < ApplicationController
skip_before_action :user_setup skip_before_action :user_setup


protected protected
def current_user
User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
def current_user
#client方法对接,需要一直带着用户标识uid
if doorkeeper_token && doorkeeper_token.resource_owner_id.blank?
return User.anonymous if params[:uid].nil?
# tip_exception('缺少用户标识!') if params[:uid].nil?
User.current = User.find(params[:uid])
else
User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
end
end end


def require_manager_above def require_manager_above


+ 9
- 1
app/controllers/application_controller.rb View File

@@ -250,7 +250,15 @@ class ApplicationController < ActionController::Base
#Rails.logger.info("current_laboratory is #{current_laboratory} domain is #{request.subdomain}") #Rails.logger.info("current_laboratory is #{current_laboratory} domain is #{request.subdomain}")
if request.headers["Authorization"].present? if request.headers["Authorization"].present?
tip_exception(401, "请登录后再操作!") unless valid_doorkeeper_token? tip_exception(401, "请登录后再操作!") unless valid_doorkeeper_token?
User.current = User.find_by(id: @doorkeeper_token.resource_owner_id) if @doorkeeper_token.present?
if @doorkeeper_token.present?
# client方法对接,需要一直带着用户标识uid
if @doorkeeper_token.resource_owner_id.blank?
tip_exception(-1, "缺少用户标识!") if params[:uid].nil?
User.current = User.find(params[:uid])
else
User.current = User.find_by(id: @doorkeeper_token.resource_owner_id)
end
end
else else
User.current = find_current_user User.current = find_current_user
uid_logger("user_setup: " + (User.current.logged? ? "#{User.current.try(:login)} (id=#{User.current.try(:id)})" : "anonymous")) uid_logger("user_setup: " + (User.current.logged? ? "#{User.current.try(:login)} (id=#{User.current.try(:id)})" : "anonymous"))


+ 4
- 4
config/initializers/doorkeeper.rb View File

@@ -513,7 +513,7 @@ Doorkeeper::JWT.configure do
# about the user. Defaults to a randomly generated token in a hash: # about the user. Defaults to a randomly generated token in a hash:
# { token: "RANDOM-TOKEN" } # { token: "RANDOM-TOKEN" }
token_payload do |opts| token_payload do |opts|
user = User.find(opts[:resource_owner_id])
user = User.find_by(id: opts[:resource_owner_id])


{ {
iss: 'GitLink', iss: 'GitLink',
@@ -523,9 +523,9 @@ Doorkeeper::JWT.configure do
jti: SecureRandom.uuid, jti: SecureRandom.uuid,


user: { user: {
id: user.id,
login: user.login,
mail: user.mail
id: user&.id,
login: user&.login,
mail: user&.mail
} }
} }
end end


Loading…
Cancel
Save