class Rack::Auth::NginxOmniauthAdapter::Initiate
Public Class Methods
new(app, auth_host:, callback_path: '/_auth/callback')
click to toggle source
# File lib/rack/auth/nginx_omniauth_adapter.rb, line 28 def initialize(app, auth_host:, callback_path: '/_auth/callback') @app, @auth_host, @callback_path = app, auth_host, callback_path end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/auth/nginx_omniauth_adapter.rb, line 32 def call(env) res = @app.call(env) if res[0].to_i == 401 https = Net::HTTP.new(@auth_host, 443) https.use_ssl = true req = Net::HTTP::Get.new('/initiate') req['x-ngx-omniauth-initiate-back-to'] = "https://#{env['HTTP_HOST']}#{env['REQUEST_URI']}" req['x-ngx-omniauth-initiate-callback'] = "https://#{env['HTTP_HOST']}#{@callback_path}" req['cookie'] = env['HTTP_COOKIE'] response = https.request(req) return [ response.code.to_i, response.to_hash, [ response.body ] ] end res end