omniauth-google-oauth2 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use ree@omniauth-google-oauth2 --create
1
+ rvm use 1.9.2@omniauth-google-oauth2 --create
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module GoogleOauth2
3
- VERSION = "0.1.11"
3
+ VERSION = "0.1.12"
4
4
  end
5
5
  end
@@ -8,7 +8,7 @@ module OmniAuth
8
8
  DEFAULT_SCOPE = "userinfo.email,userinfo.profile"
9
9
 
10
10
  option :name, 'google_oauth2'
11
- option :authorize_options, [:scope, :approval_prompt, :access_type, :hd]
11
+ option :authorize_options, [:scope, :approval_prompt, :access_type, :state, :hd]
12
12
 
13
13
  option :client_options, {
14
14
  :site => 'https://accounts.google.com',
@@ -30,6 +30,8 @@ module OmniAuth
30
30
  params[:approval_prompt] = request.params['approval_prompt'] if request_has_approval_prompt
31
31
  # hd ("Hosted Domain") can be set to a Google Apps domain to force a login to that domain
32
32
  params[:hd] = request.params['hd'] if request.params['hd']
33
+ # Override the state per request
34
+ session['omniauth.state'] = params[:state] = request.params['state'] if request.params['state']
33
35
  end
34
36
  end
35
37
 
@@ -2,16 +2,23 @@ require 'spec_helper'
2
2
  require 'omniauth-google-oauth2'
3
3
 
4
4
  describe OmniAuth::Strategies::GoogleOauth2 do
5
+ def app; lambda{|env| [200, {}, ["Hello."]]} end
5
6
 
6
7
  before :each do
8
+ OmniAuth.config.test_mode = true
7
9
  @request = double('Request')
8
10
  @request.stub(:params) { {} }
9
11
  @request.stub(:cookies) { {} }
10
12
  @request.stub(:env) { {} }
11
13
  end
12
14
 
15
+ after do
16
+ OmniAuth.config.test_mode = false
17
+ end
18
+
13
19
  subject do
14
- OmniAuth::Strategies::GoogleOauth2.new(nil, @options || {}).tap do |strategy|
20
+ args = ['appid', 'secret', @options || {}].compact
21
+ OmniAuth::Strategies::GoogleOauth2.new(app, *args).tap do |strategy|
15
22
  strategy.stub(:request) { @request }
16
23
  end
17
24
  end
@@ -76,6 +83,18 @@ describe OmniAuth::Strategies::GoogleOauth2 do
76
83
  subject.extra.should_not have_key(:raw_info)
77
84
  end
78
85
 
86
+ it 'should set the state parameter' do
87
+ @options = {:state => "some_state"}
88
+ subject.authorize_params['state'].should eq('some_state')
89
+ subject.session['omniauth.state'].should eq('some_state')
90
+ end
91
+
92
+ it 'should set the state parameter dynamically' do
93
+ subject.stub(:request) { double('Request', {:params => { 'state' => 'some_state' }, :env => {}}) }
94
+ subject.authorize_params['state'].should eq('some_state')
95
+ subject.session['omniauth.state'].should eq('some_state')
96
+ end
97
+
79
98
  it 'should set the hd (hosted domain) parameter if present' do
80
99
  @options = {:hd => "example.com"}
81
100
  subject.authorize_params['hd'].should eq('example.com')
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'bundler/setup'
2
2
  require 'rspec'
3
+
3
4
  Dir[File.expand_path('../support/**/*', __FILE__)].each { |f| require f }
4
5
 
5
6
  RSpec.configure do |config|
metadata CHANGED
@@ -1,92 +1,88 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: omniauth-google-oauth2
3
- version: !ruby/object:Gem::Version
4
- hash: 13
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.12
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 11
10
- version: 0.1.11
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Josh Ellithorpe
14
9
  - Yury Korolev
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2012-07-08 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2012-07-12 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: omniauth
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
19
+ requirements:
27
20
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 15
30
- segments:
31
- - 1
32
- - 0
33
- version: "1.0"
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
34
23
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: omniauth-oauth2
38
24
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '1.0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: omniauth-oauth2
33
+ requirement: !ruby/object:Gem::Requirement
40
34
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
48
39
  type: :runtime
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rspec
52
40
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: !ruby/object:Gem::Requirement
54
50
  none: false
55
- requirements:
51
+ requirements:
56
52
  - - ~>
57
- - !ruby/object:Gem::Version
58
- hash: 23
59
- segments:
60
- - 2
61
- - 6
62
- - 0
53
+ - !ruby/object:Gem::Version
63
54
  version: 2.6.0
64
55
  type: :development
65
- version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: rake
68
56
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
57
+ version_requirements: !ruby/object:Gem::Requirement
70
58
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 2.6.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
78
71
  type: :development
79
- version_requirements: *id004
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
80
79
  description: A Google oauth2 strategy for OmniAuth 1.0
81
- email:
80
+ email:
82
81
  - quest@mac.com
83
82
  executables: []
84
-
85
83
  extensions: []
86
-
87
84
  extra_rdoc_files: []
88
-
89
- files:
85
+ files:
90
86
  - .gitignore
91
87
  - .rvmrc
92
88
  - Gemfile
@@ -102,40 +98,37 @@ files:
102
98
  - spec/omniauth/strategies/google_oauth2_spec.rb
103
99
  - spec/spec_helper.rb
104
100
  - spec/support/shared_examples.rb
105
- homepage: ""
101
+ homepage: ''
106
102
  licenses: []
107
-
108
103
  post_install_message:
109
104
  rdoc_options: []
110
-
111
- require_paths:
105
+ require_paths:
112
106
  - lib
113
- required_ruby_version: !ruby/object:Gem::Requirement
107
+ required_ruby_version: !ruby/object:Gem::Requirement
114
108
  none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: 3
119
- segments:
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ segments:
120
114
  - 0
121
- version: "0"
122
- required_rubygems_version: !ruby/object:Gem::Requirement
115
+ hash: 3450546043308666818
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
117
  none: false
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- hash: 3
128
- segments:
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ segments:
129
123
  - 0
130
- version: "0"
124
+ hash: 3450546043308666818
131
125
  requirements: []
132
-
133
126
  rubyforge_project:
134
- rubygems_version: 1.8.10
127
+ rubygems_version: 1.8.24
135
128
  signing_key:
136
129
  specification_version: 3
137
130
  summary: A Google oauth2 strategy for OmniAuth 1.0
138
- test_files:
131
+ test_files:
139
132
  - spec/omniauth/strategies/google_oauth2_spec.rb
140
133
  - spec/spec_helper.rb
141
134
  - spec/support/shared_examples.rb