Skip to content

Commit

Permalink
Adds (incomplete) Windows Live strategy to oa-more
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Bleigh authored and S. Brent Faulkner committed Feb 4, 2011
1 parent dce4c8d commit ba3594b
Show file tree
Hide file tree
Showing 3 changed files with 1,183 additions and 1 deletion.
2 changes: 1 addition & 1 deletion oa-more/lib/omniauth/more.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@


module OmniAuth module OmniAuth
module Strategies module Strategies
# autoload strategies here autoload :WindowsLive, 'omniauth/strategies/windows_live'
end end
end end
39 changes: 39 additions & 0 deletions oa-more/lib/omniauth/strategies/windows_live.rb
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,39 @@
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
Loading

0 comments on commit ba3594b

Please sign in to comment.