oauth2 增加client方式
This commit is contained in:
parent
221c439a1d
commit
915e689ef9
|
@ -7,8 +7,15 @@ class Api::V1::BaseController < ApplicationController
|
||||||
skip_before_action :user_setup
|
skip_before_action :user_setup
|
||||||
|
|
||||||
protected
|
protected
|
||||||
def current_user
|
def current_user
|
||||||
User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
|
#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
|
||||||
|
|
|
@ -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"))
|
||||||
|
|
|
@ -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,
|
id: user&.id,
|
||||||
login: user.login,
|
login: user&.login,
|
||||||
mail: user.mail
|
mail: user&.mail
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue