Sha256: bcc6a41db4430d41940303823b046da63fa96870cb4cecf490d7b6f48dd57756

Contents?: true

Size: 1.54 KB

Versions: 8

Compression:

Stored size: 1.54 KB

Contents

require 'omniauth/core'
require 'omniauth/strategies/windows_live/windowslivelogin'

module OmniAuth
  module Strategies
    class WindowsLive
      include OmniAuth::Strategy
      
      attr_accessor :app_id, :app_secret
      
      # Initialize the strategy by providing
      #
      # @param app_id [String] The application ID from your registered app with Microsoft.
      # @param app_secret [String] The secret from your registered app with Microsoft.
      # @option options [String] :locale A localization string for the login, should be in the form `en-us` or similar.
      # @option options [String] :state Some state information that is serialized into the query string upon callback.
      # @option options [Boolean] :ssl Whether or not to use SSL for login. Defaults to `true`.
      # @option options [Boolean] :force_nonprovisioned When true, forces a non-provisioned (i.e. no app id or secret) mode.
      def initialize(app, app_id = nil, app_secret = nil, options = {})
        self.app_id = app_id
        self.app_secret = app_secret
        super(app, :windows_live, app_id, app_secret, options)
        options[:ssl] ||= true
        options[:locale] ||= 'en-us'
        options[:force_nonprovisioned] = true unless app_id
      end

      protected

      def consumer
        WindowsLiveLogin.new app_id, app_secret, options[:security_algorithm], options[:force_nonprovisioned], options[:policy_url], callback_url
      end

      def request_phase
        redirect consumer.getLoginUrl(options[:state], options[:locale])
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
oa-more-0.2.4 lib/omniauth/strategies/windows_live.rb
oa-more-0.2.3 lib/omniauth/strategies/windows_live.rb
oa-more-0.2.2 lib/omniauth/strategies/windows_live.rb
oa-more-0.2.1 lib/omniauth/strategies/windows_live.rb
oa-more-0.2.0 lib/omniauth/strategies/windows_live.rb
oa-more-0.2.0.beta5 lib/omniauth/strategies/windows_live.rb
oa-more-0.2.0.beta4 lib/omniauth/strategies/windows_live.rb
oa-more-0.2.0.beta3 lib/omniauth/strategies/windows_live.rb