Sha256: f9f0d9ae57ebd0a2e9484879e2209b56c7e53e93acd9ce85f4787a479dfc7ca7

Contents?: true

Size: 1.53 KB

Versions: 7

Compression:

Stored size: 1.53 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

7 entries across 7 versions & 2 rubygems

Version Path
oa-more-0.3.2 lib/omniauth/strategies/windows_live.rb
oa-more-0.3.0 lib/omniauth/strategies/windows_live.rb
oa-more-0.3.0.rc3 lib/omniauth/strategies/windows_live.rb
omniauth-0.2.6 oa-more/lib/omniauth/strategies/windows_live.rb
oa-more-0.2.6 lib/omniauth/strategies/windows_live.rb
omniauth-0.2.5 oa-more/lib/omniauth/strategies/windows_live.rb
oa-more-0.2.5 lib/omniauth/strategies/windows_live.rb