oauth2 增加client方式

This commit is contained in:
xiaoxiaoqiong 2022-07-11 18:19:08 +08:00
parent 221c439a1d
commit 915e689ef9
3 changed files with 22 additions and 7 deletions

View File

@ -7,8 +7,15 @@ class Api::V1::BaseController < ApplicationController
skip_before_action :user_setup
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
def require_manager_above

View File

@ -250,7 +250,15 @@ class ApplicationController < ActionController::Base
#Rails.logger.info("current_laboratory is #{current_laboratory} domain is #{request.subdomain}")
if request.headers["Authorization"].present?
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
User.current = find_current_user
uid_logger("user_setup: " + (User.current.logged? ? "#{User.current.try(:login)} (id=#{User.current.try(:id)})" : "anonymous"))

View File

@ -513,7 +513,7 @@ Doorkeeper::JWT.configure do
# about the user. Defaults to a randomly generated token in a hash:
# { token: "RANDOM-TOKEN" }
token_payload do |opts|
user = User.find(opts[:resource_owner_id])
user = User.find_by(id: opts[:resource_owner_id])
{
iss: 'GitLink',
@ -523,9 +523,9 @@ Doorkeeper::JWT.configure do
jti: SecureRandom.uuid,
user: {
id: user.id,
login: user.login,
mail: user.mail
id: user&.id,
login: user&.login,
mail: user&.mail
}
}
end