Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Twitter path update #395

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion oa-oauth/lib/omniauth/oauth.rb
Expand Up @@ -9,6 +9,7 @@ module Strategies
autoload :Douban, 'omniauth/strategies/oauth/douban'
autoload :Dropbox, 'omniauth/strategies/oauth/dropbox'
autoload :Evernote, 'omniauth/strategies/oauth/evernote'
autoload :Facebook, 'omniauth/strategies/oauth/facebook'
autoload :Goodreads, 'omniauth/strategies/oauth/goodreads'
autoload :Google, 'omniauth/strategies/oauth/google'
autoload :GoogleHealth, 'omniauth/strategies/oauth/google_health'
Expand Down Expand Up @@ -45,7 +46,6 @@ module Strategies
autoload :Bitly, 'omniauth/strategies/oauth2/bitly'
autoload :Dailymile, 'omniauth/strategies/oauth2/dailymile'
autoload :Doit, 'omniauth/strategies/oauth2/doit'
autoload :Facebook, 'omniauth/strategies/oauth2/facebook'
autoload :Foursquare, 'omniauth/strategies/oauth2/foursquare'
autoload :GitHub, 'omniauth/strategies/oauth2/github'
autoload :Glitch, 'omniauth/strategies/oauth2/glitch'
Expand Down
Expand Up @@ -8,16 +8,13 @@ module Strategies
#
# @example Basic Usage
# use OmniAuth::Strategies::Facebook, 'client_id', 'client_secret'
class Facebook < OmniAuth::Strategies::OAuth2
class Facebook < OAuth2
# @param [Rack Application] app standard middleware application parameter
# @param [String] client_id the application id as [registered on Facebook](http://www.facebook.com/developers/)
# @param [String] client_secret the application secret as registered on Facebook
# @option options [String] :scope ('email,offline_access') comma-separated extended permissions such as `email` and `manage_pages`
def initialize(app, client_id=nil, client_secret=nil, options = {}, &block)
client_options = {
:site => 'https://graph.facebook.com/'
}
super(app, :facebook, client_id, client_secret, client_options, options, &block)
def initialize(app, client_id = nil, client_secret = nil, options = {}, &block)
super(app, :facebook, client_id, client_secret, {:site => 'https://graph.facebook.com/'}, options, &block)
end

def user_data
Expand Down Expand Up @@ -48,7 +45,7 @@ def facebook_session

def user_info
{
'nickname' => user_data["username"],
'nickname' => user_data["link"].split('/').last,
'email' => (user_data["email"] if user_data["email"]),
'first_name' => user_data["first_name"],
'last_name' => user_data["last_name"],
Expand Down
33 changes: 16 additions & 17 deletions oa-oauth/lib/omniauth/strategies/oauth/twitter.rb
Expand Up @@ -3,38 +3,39 @@

module OmniAuth
module Strategies
#
# Authenticate to Twitter via OAuth and retrieve basic
# user information.
#
# Usage:
#
# use OmniAuth::Strategies::Twitter, 'consumerkey', 'consumersecret'
#
class Twitter < OmniAuth::Strategies::OAuth
# Initialize the middleware
#
# @option options [Boolean, true] :sign_in When true, use the "Sign in with Twitter" flow instead of the authorization flow.
def initialize(app, consumer_key=nil, consumer_secret=nil, options={}, &block)
def initialize(app, consumer_key = nil, consumer_secret = nil, options = {}, &block)
client_options = {
:site => 'https://api.twitter.com',
:site => 'https://api.twitter.com'
}

options[:authorize_params] = {:force_login => 'true'} if options.delete(:force_login) == true
client_options[:authorize_path] = '/oauth/authenticate' unless options[:sign_in] == false
super(app, options[:name] || :twitter, consumer_key, consumer_secret, client_options, options, &block)
client_options[:authorize_path] = '/oauth/authorize' unless options[:sign_in] == false
super(app, :twitter, consumer_key, consumer_secret, client_options, options)
end

def auth_hash
OmniAuth::Utils.deep_merge(
super, {
'uid' => @access_token.params[:user_id],
'user_info' => user_info,
'extra' => {
'user_hash' => user_hash,
},
}
)
OmniAuth::Utils.deep_merge(super, {
'uid' => @access_token.params[:user_id],
'user_info' => user_info,
'extra' => {'user_hash' => user_hash}
})
end

def user_info
user_hash = self.user_hash

{
'nickname' => user_hash['screen_name'],
'name' => user_hash['name'] || user_hash['screen_name'],
Expand All @@ -43,15 +44,13 @@ def user_info
'description' => user_hash['description'],
'urls' => {
'Website' => user_hash['url'],
'Twitter' => 'http://twitter.com/' + user_hash['screen_name'],
},
'Twitter' => 'http://twitter.com/' + user_hash['screen_name']
}
}
end

def user_hash
@user_hash ||= MultiJson.decode(@access_token.get('/1/account/verify_credentials.json').body)
rescue ::Errno::ETIMEDOUT
raise ::Timeout::Error
end
end
end
Expand Down