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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +3 -0
- data/.travis.yml +14 -1
- data/Appraisals +14 -0
- data/README.md +12 -1
- data/certs/tinfoilsecurity-gems-cert.pem +30 -28
- data/devise-two-factor.gemspec +3 -2
- data/gemfiles/rails_4_1.gemfile +8 -0
- data/gemfiles/rails_4_2.gemfile +8 -0
- data/gemfiles/rails_5_0.gemfile +8 -0
- data/lib/devise_two_factor/spec_helpers/two_factor_authenticatable_shared_examples.rb +1 -1
- data/lib/devise_two_factor/spec_helpers/two_factor_backupable_shared_examples.rb +1 -1
- data/lib/devise_two_factor/version.rb +1 -1
- metadata +59 -39
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a182bb8b0619079432256f1a392434b21fe8f583
|
4
|
+
data.tar.gz: 31762712f97291602a2ba2f0af5337c3c9caa359
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ee2c920d0aa96f7feb1f53375c03e02681887d40108e674f033a4010d673a80a2b4c9942ce8f2d7e892bbfdcc22e28242753aaebd7213c768c59e156158d679
|
7
|
+
data.tar.gz: 6b00bf92e9253dca1cc9ba04006f40de004e36812ea48d9bf943d453355b37edea0e73b7938890e6915fc5e654c2f9fefdbc6e9eeaaee51e19fca373f97736d7
|
checksums.yaml.gz.sig
CHANGED
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
|
data/.travis.yml
CHANGED
@@ -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.
|
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
|
data/Appraisals
ADDED
@@ -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
|
-
|
2
|
+
MIIGATCCA+mgAwIBAgIJAK2u0LojMCOOMA0GCSqGSIb3DQEBDQUAMIGcMQswCQYD
|
3
3
|
VQQGEwJVUzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVBhbG8gQWx0bzEfMB0GA1UE
|
4
4
|
ChMWVGluZm9pbCBTZWN1cml0eSwgSW5jLjEfMB0GA1UEAxMWVGluZm9pbCBTZWN1
|
5
5
|
cml0eSwgSW5jLjEqMCgGCSqGSIb3DQEJARYbc3VwcG9ydEB0aW5mb2lsc2VjdXJp
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
6
|
+
dHkuY29tMB4XDTE3MTAwNTIyMTIwMFoXDTE4MTAwNTIyMTIwMFowgYgxCzAJBgNV
|
7
|
+
BAYTAlVTMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWVGluZm9pbCBTZWN1cml0eSwg
|
8
|
+
SW5jLjEdMBsGA1UEAxMUdGluZm9pbHNlY3VyaXR5LWdlbXMxLDAqBgkqhkiG9w0B
|
9
|
+
CQEWHWVuZ2luZWVyc0B0aW5mb2lsc2VjdXJpdHkuY29tMIICIjANBgkqhkiG9w0B
|
10
|
+
AQEFAAOCAg8AMIICCgKCAgEAzSWDR/A/vJQAi7dys4xCD7N11QQj2jJtng/15PTj
|
11
|
+
k7g1fzaoDCtInA/TEcTFLUt0gqwvUHD6HF0++n9i0N8lSbivqwVGrMphBEuOzyMd
|
12
|
+
nMwuJ+B4GtMTz7gaYqDtuqGkRbKG8s4fUTziG52H6Y8qrXa25vmMjN7D0eF8xYq7
|
13
|
+
/caJk+BPU+EQi4DkB03Cyi/SvZvhDez3lXVVF1dD2u3FbNryVCnnbHe756+i825/
|
14
|
+
E6D5P+yf+Fvd9T22niOcoPWbmkWvStiGmNU5DyOuzVuKiorQVXqUZV8Okm+02HFJ
|
15
|
+
3FhEP3guQqZzpqlKxubXxg/HHOWhmTpIrVv1V2YFY/NcYAr9YZOB4xK66quBQTQG
|
16
|
+
gkjcgX8EdE1GKoNZTdZ2zYzisH2+mEZ9OkdqL3BSRtLZhobEFCwq+n1vLtk30jPl
|
17
|
+
PVhUiCcdoK4rq3mOxGT8IPzILFIllFjBXps9xlWF1iUd3TdqVvVKq965IymWwNG7
|
18
|
+
LRlmoSTvR7hXQ2pEMaGkz2D7U0AwvpLJJDupShtSiyKGdYi2cwdSrNbxHshO5adY
|
19
|
+
ploKVKvqttzxZLdYCAYv+LRr87C2cntuUFNmPly85XQjZvg8kRV2fkPmyt9yL3lH
|
20
|
+
lFhDr+E9ak1xwDsqcs5oKHVURvz65bEjDgXxOdeZBtZgzBo0XAqRLZbJIMVG3+6j
|
21
|
+
O4UCAwEAAaNYMFYwCQYDVR0TBAIwADBJBgNVHR8EQjBAMD6gPKA6hjhodHRwczov
|
22
|
+
L3d3dy50aW5mb2lsc2VjdXJpdHkuY29tL3NlY3VyaXR5L3Jldm9jYXRpb25fbGlz
|
23
|
+
dDANBgkqhkiG9w0BAQ0FAAOCAgEAOWgFA1OGyomztWe+GvGgB1JIwPqzIhhFaSLR
|
24
|
+
uXlp275fyIrue9ugflj93j346PL1y88ffbzdK5tm25ZJcCX/itacoAPMHcxQeq01
|
25
|
+
IFG4+xO0C+sfpklgWzYy0wrg9iTctbpk7KKtxMroVsGWK1k8BBc/1Wi3vnYxqeNO
|
26
|
+
2z670EtC1xuiOr0xY8SDO+LuBaO6SptvnIs29RVTVxaaYToUO54nX4kxMFwSrkBP
|
27
|
+
Zhe6rprP8u0tO3q4CzI+MfmXJEFOC8ABF6odZmODVJRb5dQrxsqSwN8kpTdkg0As
|
28
|
+
w44Qv8VIr60YBpWzpVB90ZFkQAnJXty9LaSvc7uiTExDSFiDwNx7JEgGcjLVTGZS
|
29
|
+
I1LBc63m+uhZghQzm3Pi3i6hZFm5VdaFuOYL5uNsJf5dJ4Qo+K1WwmZ7y4VpuInn
|
30
|
+
uWzaz2XrvJTY3/mv3JifXdq8SUFw8RnjUyc6fQo15K1jYbgY7FqfByH0Xx9avcO3
|
31
|
+
wprlcVYL0flWPzWJdJ4YwY4WZ4LvjPhxOYmE28670DIOQoSajqLS7VUqXA1psgI1
|
32
|
+
UqyeEsa9DYAUXhKYFarMPfzwa/SGOMX64OkGXNsVCWj93QiwE7tOJQRELouYAHI7
|
33
|
+
PaA022yxKoh+TitCDcZLQC7ewl554vH1xWicHaLNuuhy6yKmqKiVR8kqtYLrijgo
|
34
|
+
ztlV910=
|
33
35
|
-----END CERTIFICATE-----
|
data/devise-two-factor.gemspec
CHANGED
@@ -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'
|
@@ -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)
|
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.
|
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
|
-
|
55
|
+
MIIGATCCA+mgAwIBAgIJAK2u0LojMCOOMA0GCSqGSIb3DQEBDQUAMIGcMQswCQYD
|
56
56
|
VQQGEwJVUzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVBhbG8gQWx0bzEfMB0GA1UE
|
57
57
|
ChMWVGluZm9pbCBTZWN1cml0eSwgSW5jLjEfMB0GA1UEAxMWVGluZm9pbCBTZWN1
|
58
58
|
cml0eSwgSW5jLjEqMCgGCSqGSIb3DQEJARYbc3VwcG9ydEB0aW5mb2lsc2VjdXJp
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
59
|
+
dHkuY29tMB4XDTE3MTAwNTIyMTIwMFoXDTE4MTAwNTIyMTIwMFowgYgxCzAJBgNV
|
60
|
+
BAYTAlVTMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWVGluZm9pbCBTZWN1cml0eSwg
|
61
|
+
SW5jLjEdMBsGA1UEAxMUdGluZm9pbHNlY3VyaXR5LWdlbXMxLDAqBgkqhkiG9w0B
|
62
|
+
CQEWHWVuZ2luZWVyc0B0aW5mb2lsc2VjdXJpdHkuY29tMIICIjANBgkqhkiG9w0B
|
63
|
+
AQEFAAOCAg8AMIICCgKCAgEAzSWDR/A/vJQAi7dys4xCD7N11QQj2jJtng/15PTj
|
64
|
+
k7g1fzaoDCtInA/TEcTFLUt0gqwvUHD6HF0++n9i0N8lSbivqwVGrMphBEuOzyMd
|
65
|
+
nMwuJ+B4GtMTz7gaYqDtuqGkRbKG8s4fUTziG52H6Y8qrXa25vmMjN7D0eF8xYq7
|
66
|
+
/caJk+BPU+EQi4DkB03Cyi/SvZvhDez3lXVVF1dD2u3FbNryVCnnbHe756+i825/
|
67
|
+
E6D5P+yf+Fvd9T22niOcoPWbmkWvStiGmNU5DyOuzVuKiorQVXqUZV8Okm+02HFJ
|
68
|
+
3FhEP3guQqZzpqlKxubXxg/HHOWhmTpIrVv1V2YFY/NcYAr9YZOB4xK66quBQTQG
|
69
|
+
gkjcgX8EdE1GKoNZTdZ2zYzisH2+mEZ9OkdqL3BSRtLZhobEFCwq+n1vLtk30jPl
|
70
|
+
PVhUiCcdoK4rq3mOxGT8IPzILFIllFjBXps9xlWF1iUd3TdqVvVKq965IymWwNG7
|
71
|
+
LRlmoSTvR7hXQ2pEMaGkz2D7U0AwvpLJJDupShtSiyKGdYi2cwdSrNbxHshO5adY
|
72
|
+
ploKVKvqttzxZLdYCAYv+LRr87C2cntuUFNmPly85XQjZvg8kRV2fkPmyt9yL3lH
|
73
|
+
lFhDr+E9ak1xwDsqcs5oKHVURvz65bEjDgXxOdeZBtZgzBo0XAqRLZbJIMVG3+6j
|
74
|
+
O4UCAwEAAaNYMFYwCQYDVR0TBAIwADBJBgNVHR8EQjBAMD6gPKA6hjhodHRwczov
|
75
|
+
L3d3dy50aW5mb2lsc2VjdXJpdHkuY29tL3NlY3VyaXR5L3Jldm9jYXRpb25fbGlz
|
76
|
+
dDANBgkqhkiG9w0BAQ0FAAOCAgEAOWgFA1OGyomztWe+GvGgB1JIwPqzIhhFaSLR
|
77
|
+
uXlp275fyIrue9ugflj93j346PL1y88ffbzdK5tm25ZJcCX/itacoAPMHcxQeq01
|
78
|
+
IFG4+xO0C+sfpklgWzYy0wrg9iTctbpk7KKtxMroVsGWK1k8BBc/1Wi3vnYxqeNO
|
79
|
+
2z670EtC1xuiOr0xY8SDO+LuBaO6SptvnIs29RVTVxaaYToUO54nX4kxMFwSrkBP
|
80
|
+
Zhe6rprP8u0tO3q4CzI+MfmXJEFOC8ABF6odZmODVJRb5dQrxsqSwN8kpTdkg0As
|
81
|
+
w44Qv8VIr60YBpWzpVB90ZFkQAnJXty9LaSvc7uiTExDSFiDwNx7JEgGcjLVTGZS
|
82
|
+
I1LBc63m+uhZghQzm3Pi3i6hZFm5VdaFuOYL5uNsJf5dJ4Qo+K1WwmZ7y4VpuInn
|
83
|
+
uWzaz2XrvJTY3/mv3JifXdq8SUFw8RnjUyc6fQo15K1jYbgY7FqfByH0Xx9avcO3
|
84
|
+
wprlcVYL0flWPzWJdJ4YwY4WZ4LvjPhxOYmE28670DIOQoSajqLS7VUqXA1psgI1
|
85
|
+
UqyeEsa9DYAUXhKYFarMPfzwa/SGOMX64OkGXNsVCWj93QiwE7tOJQRELouYAHI7
|
86
|
+
PaA022yxKoh+TitCDcZLQC7ewl554vH1xWicHaLNuuhy6yKmqKiVR8kqtYLrijgo
|
87
|
+
ztlV910=
|
86
88
|
-----END CERTIFICATE-----
|
87
|
-
date:
|
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: '
|
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: '
|
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: '
|
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: '
|
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.
|
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
|