devise-authy 1.10.0 → 1.11.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.
- checksums.yaml +4 -4
- data/.travis.yml +7 -1
- data/CHANGELOG.md +37 -2
- data/README.md +55 -10
- data/app/views/devise/verify_authy.html.erb +2 -2
- data/app/views/devise/verify_authy.html.haml +1 -1
- data/devise-authy.gemspec +2 -2
- data/lib/devise-authy.rb +2 -0
- data/lib/devise-authy/mapping.rb +7 -0
- data/lib/devise-authy/routes.rb +2 -2
- data/lib/devise-authy/version.rb +1 -1
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4dcb41db3fa90c5055347a840927fe3480f2eb6622499775dac3996f9d3683a
|
4
|
+
data.tar.gz: e7d144883aa6ac75efb34ef13f1a9145529604d6dc9fc648a2427f9749e8f719
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89a291d8930edb905bae19949b253b645f7aaa319ff631fe0ec19da5133a363d0fcbbaa54e706e1f1495d8a219f8c4e2925309f9f22cfba94a531fb9413e3425
|
7
|
+
data.tar.gz: a89caa9abd9fbbcc088175b66949f945602a7758dc120b12a274bd0967ea41d9a42fc13b86561e51dfd269c33bb4174b6b024b499c2d98b93d0e7746b64f6dca
|
data/.travis.yml
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
language: ruby
|
2
|
-
before_install:
|
2
|
+
before_install:
|
3
|
+
- "find /home/travis/.rvm/rubies -wholename '*default/bundler-*.gemspec' -delete"
|
4
|
+
- rvm @global do gem uninstall bundler -a -x
|
5
|
+
- rvm @global do yes | gem install bundler -v '< 2.0.0'
|
6
|
+
- cd spec/rails-app && BUNDLE_GEMFILE=$TRAVIS_BUILD_DIR/spec/rails-app/Gemfile bundle install && cd ../..
|
3
7
|
script: bundle exec rspec
|
4
8
|
rvm:
|
9
|
+
- 2.6
|
5
10
|
- 2.5
|
6
11
|
- 2.4
|
7
12
|
- 2.3
|
@@ -10,3 +15,4 @@ rvm:
|
|
10
15
|
matrix:
|
11
16
|
allow_failures:
|
12
17
|
- rvm: ruby-head
|
18
|
+
- rvm: 2.2
|
data/CHANGELOG.md
CHANGED
@@ -9,49 +9,84 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
9
9
|
|
10
10
|
...
|
11
11
|
|
12
|
+
## [1.11.0] - 2019-02-01
|
13
|
+
|
14
|
+
### Fixed
|
15
|
+
|
16
|
+
- Corrects for label in verify_authy view (#103 thanks @mstruebing)
|
17
|
+
- Corrects heading in verify_authy view (#104 thanks @mstruebing)
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
|
21
|
+
- Allows you to define paths for request_sms and request_phone_call (#108 thanks @dedene)
|
22
|
+
|
23
|
+
### Added
|
24
|
+
|
25
|
+
- Now sets a distinct user agent through the Authy gem (#110)
|
26
|
+
|
12
27
|
## [1.10.0] - 2018-09-26
|
13
28
|
|
14
29
|
### Changed
|
30
|
+
|
15
31
|
- Moves OneTouch approval request copy to locale file.
|
16
32
|
|
17
33
|
### Removed
|
34
|
+
|
18
35
|
- Demo app now lives in its own repo
|
19
36
|
|
20
37
|
## [1.9.0] - 2018-09-04
|
21
38
|
|
22
39
|
### Fixed
|
40
|
+
|
23
41
|
- Generated migration now includes version number for Rails 5
|
24
42
|
|
25
43
|
### Changed
|
44
|
+
|
26
45
|
- Removes Jeweler in favour of administering the gemspec by hand
|
27
46
|
- Removes demo app files from gem package
|
28
47
|
|
29
48
|
## [1.8.3] - 2018-07-05
|
49
|
+
|
30
50
|
### Fixed
|
51
|
+
|
31
52
|
- Fixes Ruby interpolation in HAML for onetouch (thanks @muan)
|
32
53
|
- Records Authy authentication after install verification (thanks @nukturnal)
|
33
54
|
- Forgets remember device cookie when disabling Authy (thanks @senekis)
|
34
55
|
|
35
56
|
### Changed
|
57
|
+
|
36
58
|
- Updated testing Rubies in CI
|
37
59
|
|
38
60
|
## Older releases
|
39
61
|
|
40
|
-
|
62
|
+
**_The following releases happened before the changelog was started. Some history will be added for clarity._**
|
41
63
|
|
42
64
|
## [1.8.2] - 2017-12-22
|
65
|
+
|
43
66
|
## [1.8.1] - 2016-12-06
|
67
|
+
|
44
68
|
## [1.8.0] - 2016-10-25
|
69
|
+
|
45
70
|
## [1.7.0] - 2015-12-22
|
71
|
+
|
46
72
|
## [1.6.0] - 2015-01-07
|
73
|
+
|
47
74
|
## [1.5.3] - 2014-06-11
|
75
|
+
|
48
76
|
## [1.5.2] - 2014-06-11
|
77
|
+
|
49
78
|
## [1.5.1] - 2014-04-24
|
79
|
+
|
50
80
|
## [1.5.0] - 2014-01-07
|
81
|
+
|
51
82
|
## [1.4.0] - 2013-12-17
|
83
|
+
|
52
84
|
## [1.3.0] - 2013-11-16
|
85
|
+
|
53
86
|
## [1.2.2] - 2013-09-04
|
87
|
+
|
54
88
|
## [1.2.1] - 2013-04-22
|
89
|
+
|
55
90
|
## [1.2.0] - 2013-04-22 [YANKED]
|
56
|
-
## [1.0.0] - 2013-04-10
|
57
91
|
|
92
|
+
## [1.0.0] - 2013-04-10
|
data/README.md
CHANGED
@@ -38,17 +38,55 @@ Add `Devise Authy` to your App:
|
|
38
38
|
|
39
39
|
### Configuring Models
|
40
40
|
|
41
|
-
|
41
|
+
You can add devise_authy to your user model in two ways.
|
42
42
|
|
43
|
-
|
43
|
+
#### With the generator
|
44
44
|
|
45
|
-
|
45
|
+
This is the easiest way and is recommended. Run the following command:
|
46
|
+
|
47
|
+
```bash
|
48
|
+
rails g devise_authy [MODEL_NAME]
|
49
|
+
```
|
50
|
+
|
51
|
+
#### Manually
|
52
|
+
|
53
|
+
Add `:authy_authenticatable` to the `devise` options in your Devise user model:
|
46
54
|
|
47
55
|
```ruby
|
48
56
|
devise :authy_authenticatable, :database_authenticatable
|
49
57
|
```
|
50
58
|
|
51
|
-
|
59
|
+
Also add a new migration. For example, if you are adding to the `User` model, use this migration:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
class DeviseAuthyAddToUsers < ActiveRecord::Migration[5.2]
|
63
|
+
def self.up
|
64
|
+
change_table :users do |t|
|
65
|
+
t.string :authy_id
|
66
|
+
t.datetime :last_sign_in_with_authy
|
67
|
+
t.boolean :authy_enabled, :default => false
|
68
|
+
end
|
69
|
+
|
70
|
+
add_index :users, :authy_id
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.down
|
74
|
+
change_table :users do |t|
|
75
|
+
t.remove :authy_id, :last_sign_in_with_authy, :authy_enabled
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
```
|
80
|
+
|
81
|
+
#### Final steps
|
82
|
+
|
83
|
+
For either method above, run the migrations:
|
84
|
+
|
85
|
+
```bash
|
86
|
+
rake db:migrate
|
87
|
+
```
|
88
|
+
|
89
|
+
**[Optional]** Update the default routes to point to something like:
|
52
90
|
|
53
91
|
```ruby
|
54
92
|
devise_for :users, :path_names => {
|
@@ -59,10 +97,6 @@ devise_for :users, :path_names => {
|
|
59
97
|
}
|
60
98
|
```
|
61
99
|
|
62
|
-
Then run the migrations:
|
63
|
-
|
64
|
-
rake db:migrate
|
65
|
-
|
66
100
|
Now whenever a user wants to enable two-factor authentication they can go to:
|
67
101
|
|
68
102
|
http://your-app/users/enable-two-factor
|
@@ -71,7 +105,6 @@ And when the user logs in they will be redirected to:
|
|
71
105
|
|
72
106
|
http://your-app/users/verify-token
|
73
107
|
|
74
|
-
|
75
108
|
## Custom Views
|
76
109
|
|
77
110
|
If you want to customise your views, you can modify the files that are located at:
|
@@ -118,7 +151,6 @@ And tell the router to use this controller
|
|
118
151
|
devise_for :users, controllers: {devise_authy: 'my_custom_module/devise_authy'}
|
119
152
|
```
|
120
153
|
|
121
|
-
|
122
154
|
## I18n
|
123
155
|
|
124
156
|
The install generator also copies a `Devise Authy` i18n file which you can find at:
|
@@ -145,10 +177,22 @@ To enable [Authy push authentication](https://www.twilio.com/authy/features/push
|
|
145
177
|
config.authy_enable_onetouch = true
|
146
178
|
```
|
147
179
|
|
180
|
+
## Rails 5 CSRF protection
|
181
|
+
|
182
|
+
In Rails 5 `protect_from_forgery` is no longer prepended to the `before_action` chain. If you call `authenticate_user` before `protect_from_forgery` your request will result in a "Can't verify CSRF token authenticity" error.
|
183
|
+
|
184
|
+
To remedy this, add `prepend: true` to your `protect_from_forgery` call, like in this example from the [Authy Devise demo app](https://github.com/twilio/authy-devise-demo):
|
185
|
+
|
186
|
+
```ruby
|
187
|
+
class ApplicationController < ActionController::Base
|
188
|
+
protect_from_forgery with: :exception, prepend: true
|
189
|
+
end
|
190
|
+
```
|
148
191
|
|
149
192
|
## Running Tests
|
150
193
|
|
151
194
|
To prepare the tests run the following commands:
|
195
|
+
|
152
196
|
```bash
|
153
197
|
$ cd spec/rails-app
|
154
198
|
$ bundle install
|
@@ -156,6 +200,7 @@ $ RAILS_ENV=test bundle exec rake db:migrate
|
|
156
200
|
```
|
157
201
|
|
158
202
|
Now on the project root run the following commands:
|
203
|
+
|
159
204
|
```bash
|
160
205
|
$ bundle exec rspec spec/
|
161
206
|
```
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<h2>
|
2
|
-
<%= I18n.t('
|
2
|
+
<%= I18n.t('submit_token_title', {:scope => 'devise'}) %>
|
3
3
|
</h2>
|
4
4
|
|
5
5
|
<%= verify_authy_form do %>
|
6
6
|
<legend><%= I18n.t('submit_token_title', {:scope => 'devise'}) %></legend>
|
7
|
-
<%= label_tag
|
7
|
+
<%= label_tag 'authy-token' %>
|
8
8
|
<%= text_field_tag :token, "", :autocomplete => :off, :id => 'authy-token' %>
|
9
9
|
<label>
|
10
10
|
<%= check_box_tag :remember_device %>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
= verify_authy_form do
|
4
4
|
%legend= I18n.t('submit_token_title', {:scope => 'devise'})
|
5
5
|
= hidden_field_tag :"#{resource_name}_id", @resource.id
|
6
|
-
= label_tag
|
6
|
+
= label_tag 'authy-token'
|
7
7
|
= text_field_tag :token, "", :autocomplete => :off, :id => 'authy-token'
|
8
8
|
%label
|
9
9
|
= check_box_tag :remember_device
|
data/devise-authy.gemspec
CHANGED
@@ -29,9 +29,9 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.require_paths = ["lib"]
|
30
30
|
|
31
31
|
spec.add_dependency "devise", ">= 3.0.0"
|
32
|
-
spec.add_dependency "authy", ">= 2.7.
|
32
|
+
spec.add_dependency "authy", ">= 2.7.5"
|
33
33
|
|
34
|
-
spec.add_development_dependency "bundler", "
|
34
|
+
spec.add_development_dependency "bundler", ">= 1.16"
|
35
35
|
spec.add_development_dependency "rake", "~> 10.0"
|
36
36
|
spec.add_development_dependency "rspec", "~> 3.0"
|
37
37
|
spec.add_development_dependency "yard", "~> 0.9.11"
|
data/lib/devise-authy.rb
CHANGED
@@ -3,6 +3,8 @@ require 'active_support/core_ext/integer/time'
|
|
3
3
|
require 'devise'
|
4
4
|
require 'authy'
|
5
5
|
|
6
|
+
Authy.user_agent = "DeviseAuthy/#{DeviseAuthy::VERSION} - #{Authy.user_agent}"
|
7
|
+
|
6
8
|
module Devise
|
7
9
|
mattr_accessor :authy_remember_device, :authy_enable_onetouch
|
8
10
|
@@authy_remember_device = 1.month
|
data/lib/devise-authy/mapping.rb
CHANGED
@@ -6,5 +6,12 @@ module DeviseAuthy
|
|
6
6
|
options[:controllers][:passwords] ||= "devise_authy/passwords"
|
7
7
|
super
|
8
8
|
end
|
9
|
+
|
10
|
+
def default_path_names(options)
|
11
|
+
options[:path_names] ||= {}
|
12
|
+
options[:path_names][:request_sms] ||= 'request-sms'
|
13
|
+
options[:path_names][:request_phone_call] ||= 'request-phone-call'
|
14
|
+
super
|
15
|
+
end
|
9
16
|
end
|
10
17
|
end
|
data/lib/devise-authy/routes.rb
CHANGED
@@ -16,8 +16,8 @@ module ActionDispatch::Routing
|
|
16
16
|
|
17
17
|
match "/#{mapping.path_names[:authy_onetouch_status]}", :controller => controllers[:devise_authy], :action => :GET_authy_onetouch_status, as: :authy_onetouch_status, via: :get
|
18
18
|
|
19
|
-
match "
|
20
|
-
match "
|
19
|
+
match "/#{mapping.path_names[:request_sms]}", :controller => controllers[:devise_authy], :action => :request_sms, :as => :request_sms, :via => :post
|
20
|
+
match "/#{mapping.path_names[:request_phone_call]}", :controller => controllers[:devise_authy], :action => :request_phone_call, :as => :request_phone_call, :via => :post
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
data/lib/devise-authy/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise-authy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Authy Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: devise
|
@@ -30,26 +30,26 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.7.
|
33
|
+
version: 2.7.5
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.7.
|
40
|
+
version: 2.7.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.16'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.16'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -189,8 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
189
|
- !ruby/object:Gem::Version
|
190
190
|
version: '0'
|
191
191
|
requirements: []
|
192
|
-
|
193
|
-
rubygems_version: 2.7.6
|
192
|
+
rubygems_version: 3.0.1
|
194
193
|
signing_key:
|
195
194
|
specification_version: 4
|
196
195
|
summary: Authy plugin for Devise.
|