Sha256: e20937d007c89418846bb3799cd455346b7bb9be4de2d45d32ca998371a88d15
Contents?: true
Size: 1.54 KB
Versions: 3
Compression:
Stored size: 1.54 KB
Contents
require 'omniauth/core' module OmniAuth module Strategy def self.included(base) base.class_eval do attr_reader :app, :name, :env end end def initialize(app, name, *args) @app = app @name = name.to_sym end def call(env) dup.call!(env) end def call!(env) @env = env if request.path == "#{OmniAuth.config.path_prefix}/#{name}" request_phase elsif request.path == "#{OmniAuth.config.path_prefix}/#{name}/callback" callback_phase else if respond_to?(:other_phase) other_phase else @app.call(env) end end end def request_phase raise NotImplementedError end def callback_phase env['rack.auth'] = auth_hash @app.call(env) end def auth_hash { 'provider' => name.to_s, 'uid' => nil } end def full_host uri = URI.parse(request.url) uri.path = '' uri.query = nil uri.to_s end def callback_url full_host + "#{OmniAuth.config.path_prefix}/#{name}/callback" end def session @env['rack.session'] end def request @request ||= Rack::Request.new(@env) end def redirect(uri) r = Rack::Response.new("Redirecting to #{uri}...") r.redirect(uri) r.finish end def user_info; {} end def fail!(message_key) OmniAuth.config.on_failure.call(self.env, message_key.to_sym) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
oa-core-0.1.2 | lib/omniauth/strategy.rb |
oa-core-0.1.1 | lib/omniauth/strategy.rb |
oa-core-0.1.0 | lib/omniauth/strategy.rb |