devise-two-factor 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of devise-two-factor might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b3b5de2fc272e8a4cb6efed6a5767d5ebf98b7a
4
- data.tar.gz: b9f07dd6665d994fc78c3fca5baf074a2a7ecdbd
3
+ metadata.gz: a182bb8b0619079432256f1a392434b21fe8f583
4
+ data.tar.gz: 31762712f97291602a2ba2f0af5337c3c9caa359
5
5
  SHA512:
6
- metadata.gz: fdd8ddf024c2d4d336026262ea27c9660df54d6363c3aff582c500e76ae7b8bc136d1cf3f048527b5e95c899af04dc1ae4fb4c91e4323c5b47aeb6fe922df98d
7
- data.tar.gz: 11b3e866530264a4c3779fc49150df1de42658e7ead17496844d7f667d6d033c5c5fb7808d50df62a0a7afdc265e6d442f31d55ac2188d9f330662545d5c37f7
6
+ metadata.gz: 4ee2c920d0aa96f7feb1f53375c03e02681887d40108e674f033a4010d673a80a2b4c9942ce8f2d7e892bbfdcc22e28242753aaebd7213c768c59e156158d679
7
+ data.tar.gz: 6b00bf92e9253dca1cc9ba04006f40de004e36812ea48d9bf943d453355b37edea0e73b7938890e6915fc5e654c2f9fefdbc6e9eeaaee51e19fca373f97736d7
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.gitignore CHANGED
@@ -9,6 +9,8 @@
9
9
  /test/tmp/
10
10
  /test/version_tmp/
11
11
  /tmp/
12
+ /gemfiles/.bundle/
13
+ /gemfiles/*.gemfile.lock
12
14
 
13
15
  ## Specific to RubyMotion:
14
16
  .dat*
@@ -42,6 +44,7 @@ build-iPhoneSimulator/
42
44
  Gemfile.lock
43
45
  .ruby-version
44
46
  .ruby-gemset
47
+ .tool-versions
45
48
 
46
49
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
47
50
  .rvmrc
@@ -4,7 +4,20 @@ cache: bundler
4
4
  before_install:
5
5
  - gem update --system
6
6
  - gem update bundler
7
+ gemfile:
8
+ - Gemfile
9
+ - gemfiles/rails_4_1.gemfile
10
+ - gemfiles/rails_4_2.gemfile
11
+ - gemfiles/rails_5_0.gemfile
7
12
  rvm:
8
13
  - "2.1"
9
14
  - "2.2"
10
- - "2.3.0"
15
+ - "2.3.4"
16
+ - "2.4.0"
17
+ - "2.4.1"
18
+ matrix:
19
+ exclude:
20
+ - rvm: "2.1"
21
+ gemfile: gemfiles/rails_5_0.gemfile
22
+ - rvm: "2.2"
23
+ gemfile: gemfiles/rails_5_0.gemfile
@@ -0,0 +1,14 @@
1
+ appraise "rails-4-1" do
2
+ gem 'railties', '~> 4.1'
3
+ gem 'activesupport', '~> 4.1'
4
+ end
5
+
6
+ appraise "rails-4-2" do
7
+ gem 'railties', '~> 4.2'
8
+ gem 'activesupport', '~> 4.2'
9
+ end
10
+
11
+ appraise "rails-5-0" do
12
+ gem 'railties', '~> 5.0'
13
+ gem 'activesupport', '~> 5.0'
14
+ end
data/README.md CHANGED
@@ -7,7 +7,7 @@ Devise-Two-Factor is a minimalist extension to Devise which offers support for t
7
7
 
8
8
  * Allows you to incorporate two-factor authentication into your existing models
9
9
  * Is opinionated about security, so you don't have to be
10
- * Integrates easily with two-factor applications like Google Authenticator and Authy
10
+ * Integrates easily with two-factor applications like [Google Authenticator](https://support.google.com/accounts/answer/1066447?hl=en) and [Authy](https://authy.com/)
11
11
  * Is extensible, and includes two-factor backup codes as an example of how plugins can be structured
12
12
 
13
13
  ## Example App
@@ -122,6 +122,17 @@ Before you can do this however, you need to decide how you're going to transmit
122
122
 
123
123
  At Tinfoil Security, we opted to use the excellent [rqrcode-rails3](https://github.com/samvincent/rqrcode-rails3) gem to generate a QR-code representing the user's secret key, which can then be scanned by any mobile two-factor authentication client.
124
124
 
125
+ If you decide to do this you'll need to generate a URI to act as the source for the QR code. This can be done using the `User#otp_provisioning_uri` method.
126
+
127
+ ```ruby
128
+ issuer = 'Your App'
129
+ label = "#{issuer}:#{current_user.email}"
130
+
131
+ current_user.otp_provisioning_uri(label, issuer: issuer)
132
+
133
+ # > "otpauth://totp/Your%20App:user@example.com?secret=[otp_secret]&issuer=Your+App"
134
+ ```
135
+
125
136
  If you instead to decide to send the one-time password to the user directly, such as via SMS, you'll need a mechanism for generating the one-time password on the server:
126
137
 
127
138
  ```ruby
@@ -1,33 +1,35 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIFyjCCA7KgAwIBAgIJAK2u0LojMCNtMA0GCSqGSIb3DQEBDQUAMIGcMQswCQYD
2
+ MIIGATCCA+mgAwIBAgIJAK2u0LojMCOOMA0GCSqGSIb3DQEBDQUAMIGcMQswCQYD
3
3
  VQQGEwJVUzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVBhbG8gQWx0bzEfMB0GA1UE
4
4
  ChMWVGluZm9pbCBTZWN1cml0eSwgSW5jLjEfMB0GA1UEAxMWVGluZm9pbCBTZWN1
5
5
  cml0eSwgSW5jLjEqMCgGCSqGSIb3DQEJARYbc3VwcG9ydEB0aW5mb2lsc2VjdXJp
6
- dHkuY29tMB4XDTE0MDUyMDIxMTAwMFoXDTE2MDUyMDIxMTAwMFowgZwxCzAJBgNV
7
- BAYTAlVTMQswCQYDVQQIEwJDQTESMBAGA1UEBxMJUGFsbyBBbHRvMR8wHQYDVQQK
8
- ExZUaW5mb2lsIFNlY3VyaXR5LCBJbmMuMR0wGwYDVQQDExR0aW5mb2lsc2VjdXJp
9
- dHktZ2VtczEsMCoGCSqGSIb3DQEJARYdZW5naW5lZXJzQHRpbmZvaWxzZWN1cml0
10
- eS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDNJYNH8D+8lACL
11
- t3KzjEIPs3XVBCPaMm2eD/Xk9OOTuDV/NqgMK0icD9MRxMUtS3SCrC9QcPocXT76
12
- f2LQ3yVJuK+rBUasymEES47PIx2czC4n4Hga0xPPuBpioO26oaRFsobyzh9RPOIb
13
- nYfpjyqtdrbm+YyM3sPR4XzFirv9xomT4E9T4RCLgOQHTcLKL9K9m+EN7PeVdVUX
14
- V0Pa7cVs2vJUKedsd7vnr6Lzbn8ToPk/7J/4W931PbaeI5yg9ZuaRa9K2IaY1TkP
15
- I67NW4qKitBVepRlXw6Sb7TYcUncWEQ/eC5CpnOmqUrG5tfGD8cc5aGZOkitW/VX
16
- ZgVj81xgCv1hk4HjErrqq4FBNAaCSNyBfwR0TUYqg1lN1nbNjOKwfb6YRn06R2ov
17
- cFJG0tmGhsQULCr6fW8u2TfSM+U9WFSIJx2griureY7EZPwg/MgsUiWUWMFemz3G
18
- VYXWJR3dN2pW9Uqr3rkjKZbA0bstGWahJO9HuFdDakQxoaTPYPtTQDC+kskkO6lK
19
- G1KLIoZ1iLZzB1Ks1vEeyE7lp1imWgpUq+q23PFkt1gIBi/4tGvzsLZye25QU2Y+
20
- XLzldCNm+DyRFXZ+Q+bK33IveUeUWEOv4T1qTXHAOypyzmgodVRG/PrlsSMOBfE5
21
- 15kG1mDMGjRcCpEtlskgxUbf7qM7hQIDAQABow0wCzAJBgNVHRMEAjAAMA0GCSqG
22
- SIb3DQEBDQUAA4ICAQCLXzGJOr0isGHscTvm73ReEAOv4g0IOSXjfHfHAOWKhzdM
23
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
34
+ ztlV910=
33
35
  -----END CERTIFICATE-----
@@ -24,13 +24,14 @@ Gem::Specification.new do |s|
24
24
  s.test_files = `git ls-files -- spec/*`.split("\n")
25
25
  s.require_paths = ['lib']
26
26
 
27
- s.add_runtime_dependency 'railties'
28
- s.add_runtime_dependency 'activesupport'
27
+ s.add_runtime_dependency 'railties', '< 5.1'
28
+ s.add_runtime_dependency 'activesupport', '< 5.1'
29
29
  s.add_runtime_dependency 'attr_encrypted', '>= 1.3', '< 4', '!= 2'
30
30
  s.add_runtime_dependency 'devise', '~> 4.0'
31
31
  s.add_runtime_dependency 'rotp', '~> 2.0'
32
32
 
33
33
  s.add_development_dependency 'activemodel'
34
+ s.add_development_dependency 'appraisal'
34
35
  s.add_development_dependency 'bundler', '> 1.0'
35
36
  s.add_development_dependency 'rspec', '> 3'
36
37
  s.add_development_dependency 'simplecov'
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "railties", "~> 4.1"
6
+ gem "activesupport", "~> 4.1"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "railties", "~> 4.2"
6
+ gem "activesupport", "~> 4.2"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "railties", "~> 5.0"
6
+ gem "activesupport", "~> 5.0"
7
+
8
+ gemspec path: "../"
@@ -1,4 +1,4 @@
1
- shared_examples 'two_factor_authenticatable' do
1
+ RSpec.shared_examples 'two_factor_authenticatable' do
2
2
  before :each do
3
3
  subject.otp_secret = subject.class.generate_otp_secret
4
4
  subject.consumed_timestep = nil
@@ -1,4 +1,4 @@
1
- shared_examples 'two_factor_backupable' do
1
+ RSpec.shared_examples 'two_factor_backupable' do
2
2
  describe 'required_fields' do
3
3
  it 'has the attr_encrypted fields for otp_backup_codes' do
4
4
  expect(Devise::Models::TwoFactorBackupable.required_fields(subject.class)).to contain_exactly(:otp_backup_codes)
@@ -1,3 +1,3 @@
1
1
  module DeviseTwoFactor
2
- VERSION = '3.0.0'.freeze
2
+ VERSION = '3.0.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-two-factor
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Wilton
@@ -52,68 +52,70 @@ cert_chain:
52
52
  -----END CERTIFICATE-----
53
53
  - |
54
54
  -----BEGIN CERTIFICATE-----
55
- MIIFyjCCA7KgAwIBAgIJAK2u0LojMCNtMA0GCSqGSIb3DQEBDQUAMIGcMQswCQYD
55
+ MIIGATCCA+mgAwIBAgIJAK2u0LojMCOOMA0GCSqGSIb3DQEBDQUAMIGcMQswCQYD
56
56
  VQQGEwJVUzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVBhbG8gQWx0bzEfMB0GA1UE
57
57
  ChMWVGluZm9pbCBTZWN1cml0eSwgSW5jLjEfMB0GA1UEAxMWVGluZm9pbCBTZWN1
58
58
  cml0eSwgSW5jLjEqMCgGCSqGSIb3DQEJARYbc3VwcG9ydEB0aW5mb2lsc2VjdXJp
59
- dHkuY29tMB4XDTE0MDUyMDIxMTAwMFoXDTE2MDUyMDIxMTAwMFowgZwxCzAJBgNV
60
- BAYTAlVTMQswCQYDVQQIEwJDQTESMBAGA1UEBxMJUGFsbyBBbHRvMR8wHQYDVQQK
61
- ExZUaW5mb2lsIFNlY3VyaXR5LCBJbmMuMR0wGwYDVQQDExR0aW5mb2lsc2VjdXJp
62
- dHktZ2VtczEsMCoGCSqGSIb3DQEJARYdZW5naW5lZXJzQHRpbmZvaWxzZWN1cml0
63
- eS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDNJYNH8D+8lACL
64
- t3KzjEIPs3XVBCPaMm2eD/Xk9OOTuDV/NqgMK0icD9MRxMUtS3SCrC9QcPocXT76
65
- f2LQ3yVJuK+rBUasymEES47PIx2czC4n4Hga0xPPuBpioO26oaRFsobyzh9RPOIb
66
- nYfpjyqtdrbm+YyM3sPR4XzFirv9xomT4E9T4RCLgOQHTcLKL9K9m+EN7PeVdVUX
67
- V0Pa7cVs2vJUKedsd7vnr6Lzbn8ToPk/7J/4W931PbaeI5yg9ZuaRa9K2IaY1TkP
68
- I67NW4qKitBVepRlXw6Sb7TYcUncWEQ/eC5CpnOmqUrG5tfGD8cc5aGZOkitW/VX
69
- ZgVj81xgCv1hk4HjErrqq4FBNAaCSNyBfwR0TUYqg1lN1nbNjOKwfb6YRn06R2ov
70
- cFJG0tmGhsQULCr6fW8u2TfSM+U9WFSIJx2griureY7EZPwg/MgsUiWUWMFemz3G
71
- VYXWJR3dN2pW9Uqr3rkjKZbA0bstGWahJO9HuFdDakQxoaTPYPtTQDC+kskkO6lK
72
- G1KLIoZ1iLZzB1Ks1vEeyE7lp1imWgpUq+q23PFkt1gIBi/4tGvzsLZye25QU2Y+
73
- XLzldCNm+DyRFXZ+Q+bK33IveUeUWEOv4T1qTXHAOypyzmgodVRG/PrlsSMOBfE5
74
- 15kG1mDMGjRcCpEtlskgxUbf7qM7hQIDAQABow0wCzAJBgNVHRMEAjAAMA0GCSqG
75
- SIb3DQEBDQUAA4ICAQCLXzGJOr0isGHscTvm73ReEAOv4g0IOSXjfHfHAOWKhzdM
76
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
87
+ ztlV910=
86
88
  -----END CERTIFICATE-----
87
- date: 2016-05-19 00:00:00.000000000 Z
89
+ date: 2017-10-05 00:00:00.000000000 Z
88
90
  dependencies:
89
91
  - !ruby/object:Gem::Dependency
90
92
  name: railties
91
93
  requirement: !ruby/object:Gem::Requirement
92
94
  requirements:
93
- - - ">="
95
+ - - "<"
94
96
  - !ruby/object:Gem::Version
95
- version: '0'
97
+ version: '5.1'
96
98
  type: :runtime
97
99
  prerelease: false
98
100
  version_requirements: !ruby/object:Gem::Requirement
99
101
  requirements:
100
- - - ">="
102
+ - - "<"
101
103
  - !ruby/object:Gem::Version
102
- version: '0'
104
+ version: '5.1'
103
105
  - !ruby/object:Gem::Dependency
104
106
  name: activesupport
105
107
  requirement: !ruby/object:Gem::Requirement
106
108
  requirements:
107
- - - ">="
109
+ - - "<"
108
110
  - !ruby/object:Gem::Version
109
- version: '0'
111
+ version: '5.1'
110
112
  type: :runtime
111
113
  prerelease: false
112
114
  version_requirements: !ruby/object:Gem::Requirement
113
115
  requirements:
114
- - - ">="
116
+ - - "<"
115
117
  - !ruby/object:Gem::Version
116
- version: '0'
118
+ version: '5.1'
117
119
  - !ruby/object:Gem::Dependency
118
120
  name: attr_encrypted
119
121
  requirement: !ruby/object:Gem::Requirement
@@ -182,6 +184,20 @@ dependencies:
182
184
  - - ">="
183
185
  - !ruby/object:Gem::Version
184
186
  version: '0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: appraisal
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
185
201
  - !ruby/object:Gem::Dependency
186
202
  name: bundler
187
203
  requirement: !ruby/object:Gem::Requirement
@@ -261,6 +277,7 @@ files:
261
277
  - ".gitignore"
262
278
  - ".rspec"
263
279
  - ".travis.yml"
280
+ - Appraisals
264
281
  - CHANGELOG.md
265
282
  - CONTRIBUTING.md
266
283
  - Gemfile
@@ -271,6 +288,9 @@ files:
271
288
  - certs/tinfoil-cacert.pem
272
289
  - certs/tinfoilsecurity-gems-cert.pem
273
290
  - devise-two-factor.gemspec
291
+ - gemfiles/rails_4_1.gemfile
292
+ - gemfiles/rails_4_2.gemfile
293
+ - gemfiles/rails_5_0.gemfile
274
294
  - lib/devise-two-factor.rb
275
295
  - lib/devise_two_factor/models.rb
276
296
  - lib/devise_two_factor/models/two_factor_authenticatable.rb
@@ -306,7 +326,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
306
326
  version: '0'
307
327
  requirements: []
308
328
  rubyforge_project: devise-two-factor
309
- rubygems_version: 2.6.3
329
+ rubygems_version: 2.6.10
310
330
  signing_key:
311
331
  specification_version: 4
312
332
  summary: Barebones two-factor authentication with Devise
metadata.gz.sig CHANGED
Binary file