Sha256: 17c56952b3390039e915ff9af8583bd9ca31a59b1b544c939004fcec3b0cea61

Contents?: true

Size: 1.68 KB

Versions: 9

Compression:

Stored size: 1.68 KB

Contents

require 'omniauth'

module OmniAuth
  module Strategies
    # The Developer strategy is a very simple strategy that can be used as a
    # placeholder in your application until a different authentication strategy
    # is swapped in. It has zero security and should *never* be used in a
    # production setting.
    #
    # ## Usage
    #
    # To use the Developer strategy, all you need to do is put it in like any
    # other strategy:
    #
    # @example Basic Usage
    #
    #   use OmniAuth::Builder do
    #     provider :developer
    #   end
    #
    # @example Custom Fields
    #
    #   use OmniAuth::Builder do
    #     provider :developer, 
    #       :fields => [:first_name, :last_name],
    #       :uid_field => :last_name
    #   end
    #
    # This will create a strategy that, when the user visits `/auth/developer`
    # they will be presented a form that prompts for (by default) their name
    # and email address. The auth hash will be populated with these fields and
    # the `uid` will simply be set to the provided email.
    class Developer
      include OmniAuth::Strategy

      option :fields, [:name, :email]
      option :uid_field, :email

      def request_phase
        form = OmniAuth::Form.new(:title => "User Info", :url => callback_path)
        options.fields.each do |field|
          form.text_field field.to_s.capitalize.gsub("_", " "), field.to_s
        end
        form.button "Sign In"
        form.to_response
      end

      uid do
        request.params[options.uid_field.to_s]
      end

      info do
        options.fields.inject({}) do |hash, field|
          hash[field] = request.params[field.to_s]
          hash
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
omniauth-1.1.1 lib/omniauth/strategies/developer.rb
omniauth-1.1.0 lib/omniauth/strategies/developer.rb
omniauth-1.0.3 lib/omniauth/strategies/developer.rb
omniauth-1.0.2 lib/omniauth/strategies/developer.rb
omniauth-1.0.1 lib/omniauth/strategies/developer.rb
omniauth-1.0.0 lib/omniauth/strategies/developer.rb
omniauth-1.0.0.rc2 lib/omniauth/strategies/developer.rb
omniauth-1.0.0.rc1 lib/omniauth/strategies/developer.rb
omniauth-1.0.0.beta1 lib/omniauth/strategies/developer.rb