oa-oauth 0.3.0.rc3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/omniauth/oauth.rb +1 -1
- data/lib/omniauth/strategies/google_oauth2.rb +1 -1
- data/lib/omniauth/strategies/oauth/goodreads.rb +10 -10
- data/lib/omniauth/strategies/oauth/twitter.rb +1 -1
- data/lib/omniauth/strategies/oauth2/yammer.rb +63 -0
- data/lib/omniauth/version.rb +1 -1
- data/oa-oauth.gemspec +1 -1
- data/spec/omniauth/strategies/oauth/twitter_spec.rb +2 -2
- data/spec/omniauth/strategies/{oauth → oauth2}/yammer_spec.rb +1 -1
- metadata +19 -21
- data/lib/omniauth/strategies/oauth/yammer.rb +0 -48
data/lib/omniauth/oauth.rb
CHANGED
@@ -36,7 +36,6 @@ module OmniAuth
|
|
36
36
|
autoload :TypePad, 'omniauth/strategies/oauth/type_pad'
|
37
37
|
autoload :Vimeo, 'omniauth/strategies/oauth/vimeo'
|
38
38
|
autoload :Yahoo, 'omniauth/strategies/oauth/yahoo'
|
39
|
-
autoload :Yammer, 'omniauth/strategies/oauth/yammer'
|
40
39
|
autoload :YouTube, 'omniauth/strategies/oauth/you_tube'
|
41
40
|
|
42
41
|
autoload :OAuth2, 'omniauth/strategies/oauth2'
|
@@ -65,6 +64,7 @@ module OmniAuth
|
|
65
64
|
autoload :Viadeo, 'omniauth/strategies/oauth2/viadeo'
|
66
65
|
autoload :Vkontakte, 'omniauth/strategies/oauth2/vkontakte'
|
67
66
|
autoload :WePay, 'omniauth/strategies/oauth2/we_pay'
|
67
|
+
autoload :Yammer, 'omniauth/strategies/oauth2/yammer'
|
68
68
|
|
69
69
|
|
70
70
|
autoload :XAuth, 'omniauth/strategies/xauth'
|
@@ -22,7 +22,7 @@ module OmniAuth
|
|
22
22
|
def request_phase
|
23
23
|
google_email_scope = "www.googleapis.com/auth/userinfo.email"
|
24
24
|
options[:scope] ||= "https://#{google_email_scope}"
|
25
|
-
options[:scope] << "https://#{google_email_scope}" unless options[:scope] =~ %r[http[s]?:\/\/#{google_email_scope}]
|
25
|
+
options[:scope] << " https://#{google_email_scope}" unless options[:scope] =~ %r[http[s]?:\/\/#{google_email_scope}]
|
26
26
|
redirect client.auth_code.authorize_url(
|
27
27
|
{:redirect_uri => callback_url, :response_type => "code"}.merge(options))
|
28
28
|
end
|
@@ -24,19 +24,19 @@ module OmniAuth
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def user_info(access_token)
|
27
|
-
authenticated_user = MultiXml.parse(
|
28
|
-
id = authenticated_user
|
29
|
-
response_doc = MultiXml.parse(
|
30
|
-
user = response_doc
|
27
|
+
authenticated_user = MultiXml.parse(access_token.get('/api/auth_user').body)
|
28
|
+
id = authenticated_user['GoodreadsResponse']['user']['id'].to_i
|
29
|
+
response_doc = MultiXml.parse(access_token.get("/user/show/#{id}.xml?key=#{@consumer_key}").body)
|
30
|
+
user = response_doc['GoodreadsResponse']['user']
|
31
31
|
|
32
32
|
hash = {
|
33
33
|
'id' => id,
|
34
|
-
'name' => user
|
35
|
-
'user_name' => user
|
36
|
-
'image_url' => user
|
37
|
-
'about' => user
|
38
|
-
'location' => user
|
39
|
-
'website' => user
|
34
|
+
'name' => user['name'],
|
35
|
+
'user_name' => user['user_name'],
|
36
|
+
'image_url' => user['image_url'],
|
37
|
+
'about' => user['about'],
|
38
|
+
'location' => user['location'],
|
39
|
+
'website' => user['website'],
|
40
40
|
}
|
41
41
|
end
|
42
42
|
end
|
@@ -17,7 +17,7 @@ module OmniAuth
|
|
17
17
|
:site => 'https://api.twitter.com',
|
18
18
|
}
|
19
19
|
options[:authorize_params] = {:force_login => 'true'} if options.delete(:force_login) == true
|
20
|
-
client_options[:authorize_path] = '/oauth/
|
20
|
+
client_options[:authorize_path] = '/oauth/authenticate' unless options[:sign_in] == false
|
21
21
|
super(app, options[:name] || :twitter, consumer_key, consumer_secret, client_options, options, &block)
|
22
22
|
end
|
23
23
|
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'omniauth/oauth'
|
2
|
+
require 'multi_json'
|
3
|
+
|
4
|
+
module OmniAuth
|
5
|
+
module Strategies
|
6
|
+
# OAuth 2.0 based authentication with GitHub. In order to
|
7
|
+
# sign up for an application, you need to [register an application](http://github.com/account/applications/new)
|
8
|
+
# and provide the proper credentials to this middleware.
|
9
|
+
class Yammer < OmniAuth::Strategies::OAuth2
|
10
|
+
def initialize(app, client_id=nil, client_secret=nil, options={}, &block)
|
11
|
+
client_options = {
|
12
|
+
:token_url => '/oauth2/access_token.json',
|
13
|
+
:authorize_url => '/dialog/oauth',
|
14
|
+
:site => 'https://www.yammer.com'
|
15
|
+
}
|
16
|
+
super(app, :yammer, client_id, client_secret, client_options, options, &block)
|
17
|
+
end
|
18
|
+
|
19
|
+
def auth_hash
|
20
|
+
OmniAuth::Utils.deep_merge(
|
21
|
+
super, {
|
22
|
+
'uid' => user_hash['id'],
|
23
|
+
'user_info' => user_info,
|
24
|
+
'extra' => {
|
25
|
+
'user_hash' => user_hash,
|
26
|
+
},
|
27
|
+
}
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
def user_info
|
32
|
+
user_hash = self.user_hash
|
33
|
+
{
|
34
|
+
'nickname' => user_hash['name'],
|
35
|
+
'name' => user_hash['full_name'],
|
36
|
+
'location' => user_hash['location'],
|
37
|
+
'image' => user_hash['mugshot_url'],
|
38
|
+
'description' => user_hash['job_title'],
|
39
|
+
'email' => user_hash['contact']['email_addresses'][0]['address'],
|
40
|
+
'urls' => {
|
41
|
+
'Yammer' => user_hash['web_url'],
|
42
|
+
},
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
46
|
+
def build_access_token
|
47
|
+
# Dance to get the real token out of the object returned by Yammer
|
48
|
+
verifier = request.params['code']
|
49
|
+
temp_access_token = client.auth_code.get_token(verifier, {:redirect_uri => callback_url}.merge(options))
|
50
|
+
token = eval(temp_access_token.token)['token']
|
51
|
+
@access_token = ::OAuth2::AccessToken.new(client, token, temp_access_token.params)
|
52
|
+
rescue ::OAuth2::Error => e
|
53
|
+
raise e.response.inspect
|
54
|
+
end
|
55
|
+
|
56
|
+
def user_hash
|
57
|
+
@user_hash ||= MultiJson.decode(@access_token.get('/api/v1/users/current.json').body)
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/lib/omniauth/version.rb
CHANGED
data/oa-oauth.gemspec
CHANGED
@@ -4,7 +4,7 @@ require File.expand_path('../lib/omniauth/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.add_dependency 'faraday', '~> 0.7.3'
|
6
6
|
gem.add_dependency 'multi_json', '~> 1.0.0'
|
7
|
-
gem.add_dependency 'multi_xml', '~> 0.
|
7
|
+
gem.add_dependency 'multi_xml', '~> 0.4.0'
|
8
8
|
gem.add_dependency 'oa-core', OmniAuth::Version::STRING
|
9
9
|
gem.add_dependency 'oauth', '~> 0.4.0'
|
10
10
|
gem.add_dependency 'oauth2', '~> 0.5.0'
|
@@ -13,9 +13,9 @@ describe OmniAuth::Strategies::Twitter do
|
|
13
13
|
}.to_app
|
14
14
|
end
|
15
15
|
|
16
|
-
it 'should use the
|
16
|
+
it 'should use the authenticate path by default' do
|
17
17
|
s = strategy_class.new(app, 'abc', 'def')
|
18
|
-
s.consumer.options[:authorize_path].should == '/oauth/
|
18
|
+
s.consumer.options[:authorize_path].should == '/oauth/authenticate'
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'should set options[:authorize_params] to { :force_login => "true" } if :force_login is true' do
|
metadata
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oa-oauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 19
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
9
|
- 0
|
10
|
-
|
11
|
-
- 3
|
12
|
-
version: 0.3.0.rc3
|
10
|
+
version: 0.3.0
|
13
11
|
platform: ruby
|
14
12
|
authors:
|
15
13
|
- Michael Bleigh
|
@@ -18,7 +16,8 @@ autorequire:
|
|
18
16
|
bindir: bin
|
19
17
|
cert_chain: []
|
20
18
|
|
21
|
-
date: 2011-09-
|
19
|
+
date: 2011-09-22 00:00:00 -05:00
|
20
|
+
default_executable:
|
22
21
|
dependencies:
|
23
22
|
- !ruby/object:Gem::Dependency
|
24
23
|
name: faraday
|
@@ -60,12 +59,12 @@ dependencies:
|
|
60
59
|
requirements:
|
61
60
|
- - ~>
|
62
61
|
- !ruby/object:Gem::Version
|
63
|
-
hash:
|
62
|
+
hash: 15
|
64
63
|
segments:
|
65
64
|
- 0
|
66
|
-
-
|
65
|
+
- 4
|
67
66
|
- 0
|
68
|
-
version: 0.
|
67
|
+
version: 0.4.0
|
69
68
|
type: :runtime
|
70
69
|
version_requirements: *id003
|
71
70
|
- !ruby/object:Gem::Dependency
|
@@ -76,14 +75,12 @@ dependencies:
|
|
76
75
|
requirements:
|
77
76
|
- - "="
|
78
77
|
- !ruby/object:Gem::Version
|
79
|
-
hash:
|
78
|
+
hash: 19
|
80
79
|
segments:
|
81
80
|
- 0
|
82
81
|
- 3
|
83
82
|
- 0
|
84
|
-
|
85
|
-
- 3
|
86
|
-
version: 0.3.0.rc3
|
83
|
+
version: 0.3.0
|
87
84
|
type: :runtime
|
88
85
|
version_requirements: *id004
|
89
86
|
- !ruby/object:Gem::Dependency
|
@@ -309,7 +306,6 @@ files:
|
|
309
306
|
- lib/omniauth/strategies/oauth/type_pad.rb
|
310
307
|
- lib/omniauth/strategies/oauth/vimeo.rb
|
311
308
|
- lib/omniauth/strategies/oauth/yahoo.rb
|
312
|
-
- lib/omniauth/strategies/oauth/yammer.rb
|
313
309
|
- lib/omniauth/strategies/oauth/you_tube.rb
|
314
310
|
- lib/omniauth/strategies/oauth2.rb
|
315
311
|
- lib/omniauth/strategies/oauth2/angellist.rb
|
@@ -336,6 +332,7 @@ files:
|
|
336
332
|
- lib/omniauth/strategies/oauth2/viadeo.rb
|
337
333
|
- lib/omniauth/strategies/oauth2/vkontakte.rb
|
338
334
|
- lib/omniauth/strategies/oauth2/we_pay.rb
|
335
|
+
- lib/omniauth/strategies/oauth2/yammer.rb
|
339
336
|
- lib/omniauth/strategies/xauth.rb
|
340
337
|
- lib/omniauth/strategies/xauth/instapaper.rb
|
341
338
|
- lib/omniauth/version.rb
|
@@ -373,7 +370,6 @@ files:
|
|
373
370
|
- spec/omniauth/strategies/oauth/type_pad_spec.rb
|
374
371
|
- spec/omniauth/strategies/oauth/vimeo_spec.rb
|
375
372
|
- spec/omniauth/strategies/oauth/yahoo_spec.rb
|
376
|
-
- spec/omniauth/strategies/oauth/yammer_spec.rb
|
377
373
|
- spec/omniauth/strategies/oauth/you_tube_spec.rb
|
378
374
|
- spec/omniauth/strategies/oauth2/angellist_spec.rb
|
379
375
|
- spec/omniauth/strategies/oauth2/bitly_spec.rb
|
@@ -397,8 +393,10 @@ files:
|
|
397
393
|
- spec/omniauth/strategies/oauth2/viadeo_spec.rb
|
398
394
|
- spec/omniauth/strategies/oauth2/vkontakte_spec.rb
|
399
395
|
- spec/omniauth/strategies/oauth2/we_pay_spec.rb
|
396
|
+
- spec/omniauth/strategies/oauth2/yammer_spec.rb
|
400
397
|
- spec/spec_helper.rb
|
401
398
|
- spec/support/shared_examples.rb
|
399
|
+
has_rdoc: true
|
402
400
|
homepage: http://github.com/intridea/omniauth
|
403
401
|
licenses: []
|
404
402
|
|
@@ -419,18 +417,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
419
417
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
420
418
|
none: false
|
421
419
|
requirements:
|
422
|
-
- - "
|
420
|
+
- - ">="
|
423
421
|
- !ruby/object:Gem::Version
|
424
|
-
hash:
|
422
|
+
hash: 23
|
425
423
|
segments:
|
426
424
|
- 1
|
427
425
|
- 3
|
428
|
-
-
|
429
|
-
version: 1.3.
|
426
|
+
- 6
|
427
|
+
version: 1.3.6
|
430
428
|
requirements: []
|
431
429
|
|
432
430
|
rubyforge_project:
|
433
|
-
rubygems_version: 1.
|
431
|
+
rubygems_version: 1.6.2
|
434
432
|
signing_key:
|
435
433
|
specification_version: 3
|
436
434
|
summary: OAuth strategies for OmniAuth.
|
@@ -468,7 +466,6 @@ test_files:
|
|
468
466
|
- spec/omniauth/strategies/oauth/type_pad_spec.rb
|
469
467
|
- spec/omniauth/strategies/oauth/vimeo_spec.rb
|
470
468
|
- spec/omniauth/strategies/oauth/yahoo_spec.rb
|
471
|
-
- spec/omniauth/strategies/oauth/yammer_spec.rb
|
472
469
|
- spec/omniauth/strategies/oauth/you_tube_spec.rb
|
473
470
|
- spec/omniauth/strategies/oauth2/angellist_spec.rb
|
474
471
|
- spec/omniauth/strategies/oauth2/bitly_spec.rb
|
@@ -492,5 +489,6 @@ test_files:
|
|
492
489
|
- spec/omniauth/strategies/oauth2/viadeo_spec.rb
|
493
490
|
- spec/omniauth/strategies/oauth2/vkontakte_spec.rb
|
494
491
|
- spec/omniauth/strategies/oauth2/we_pay_spec.rb
|
492
|
+
- spec/omniauth/strategies/oauth2/yammer_spec.rb
|
495
493
|
- spec/spec_helper.rb
|
496
494
|
- spec/support/shared_examples.rb
|
@@ -1,48 +0,0 @@
|
|
1
|
-
require 'omniauth/oauth'
|
2
|
-
require 'multi_json'
|
3
|
-
|
4
|
-
module OmniAuth
|
5
|
-
module Strategies
|
6
|
-
class Yammer < OmniAuth::Strategies::OAuth
|
7
|
-
def initialize(app, consumer_key=nil, consumer_secret=nil, options={}, &block)
|
8
|
-
client_options = {
|
9
|
-
:access_token_path => '/oauth/access_token',
|
10
|
-
:authorize_path => '/oauth/authorize',
|
11
|
-
:request_token_path => '/oauth/request_token',
|
12
|
-
:site => 'https://www.yammer.com',
|
13
|
-
}
|
14
|
-
super(app, :yammer, consumer_key, consumer_secret, client_options, options, &block)
|
15
|
-
end
|
16
|
-
|
17
|
-
def auth_hash
|
18
|
-
OmniAuth::Utils.deep_merge(
|
19
|
-
super, {
|
20
|
-
'uid' => user_hash['id'],
|
21
|
-
'user_info' => user_info,
|
22
|
-
'extra' => {
|
23
|
-
'user_hash' => user_hash,
|
24
|
-
},
|
25
|
-
}
|
26
|
-
)
|
27
|
-
end
|
28
|
-
|
29
|
-
def user_info
|
30
|
-
user_hash = self.user_hash
|
31
|
-
{
|
32
|
-
'nickname' => user_hash['name'],
|
33
|
-
'name' => user_hash['full-name'],
|
34
|
-
'location' => user_hash['location'],
|
35
|
-
'image' => user_hash['mugshot-url'],
|
36
|
-
'description' => user_hash['job-title'],
|
37
|
-
'urls' => {
|
38
|
-
'Yammer' => user_hash['web-url'],
|
39
|
-
},
|
40
|
-
}
|
41
|
-
end
|
42
|
-
|
43
|
-
def user_hash
|
44
|
-
@user_hash ||= MultiJson.decode(@access_token.get('/api/v1/users/current.json').body)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|