devise_code_authenticatable 0.0.7 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +29 -10
- data/lib/devise_code_authenticatable/version.rb +1 -1
- data/lib/generators/devise_code_authenticatable/install_generator.rb +32 -0
- data/lib/generators/devise_code_authenticatable/templates/migration.rb +12 -0
- data/lib/generators/devise_code_authenticatable/templates/simple_form_for/login_codes/show.html.erb +7 -0
- data/lib/generators/devise_code_authenticatable/templates/simple_form_for/sessions/new.html.erb +5 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d5b5e44ba5833b455ffd654e935463a2596ae87326875e727c2d883f9983c272
|
4
|
+
data.tar.gz: 7ef83bb888e39e7fce3cb8aa3bc0d9a54000d75fc2449c7c11f2463fe086030c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84c616b0a1ddc8722c7d6c102a6259ec6a598974d7f0cf2588ba58f032dee866e92e2de266b668f23e96e3be1615bb1c4570960a59d3a9a0b244dde4e13b4216
|
7
|
+
data.tar.gz: e3f720d265c3ee899a712b649115b619c0f66b0e3e680c7838ebbdf83d9ba636f5ca454bbfd388f00013c4657606e08a3336179b398c09522b4a129ea796c6a5
|
data/README.md
CHANGED
@@ -1,28 +1,47 @@
|
|
1
1
|
# DeviseCodeAuthenticatable
|
2
|
-
|
2
|
+
A Devise plugin for two-factor authenticatable.
|
3
3
|
|
4
|
-
##
|
5
|
-
|
4
|
+
## Demo
|
5
|
+
An example rails app to use this plugin is setup in [demo](https://github.com/vincentying15/demo_for_devise_code_authenticatable)
|
6
6
|
|
7
7
|
## Installation
|
8
|
-
Add this line to your
|
8
|
+
Add this line to your Rails Gemfile:
|
9
9
|
|
10
10
|
```ruby
|
11
11
|
gem 'devise_code_authenticatable'
|
12
12
|
```
|
13
13
|
|
14
|
-
|
14
|
+
### Automatic installation
|
15
|
+
Run:
|
16
|
+
|
15
17
|
```bash
|
16
|
-
|
18
|
+
rails generate devise_code_authenticatable:install
|
19
|
+
```
|
20
|
+
|
21
|
+
This will create a migration file name in your <tt>db/migrate</tt> folder, then
|
22
|
+
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
rails db:migrate
|
17
26
|
```
|
27
|
+
### Devise Configuration
|
28
|
+
Add <tt>:authenticatable</tt> to the model you want to enable code_authenticatable
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
class User < ActiveRecord::Base
|
32
|
+
devise :database_authenticatable, :confirmable, :code_authenticatable
|
33
|
+
end
|
34
|
+
```
|
35
|
+
## Usage
|
36
|
+
### Customize views
|
37
|
+
This plugin is included with basic views, to customize the views you need to run
|
18
38
|
|
19
|
-
Or install it yourself as:
|
20
39
|
```bash
|
21
|
-
|
40
|
+
rails generate devise_code_authenticatable:views
|
22
41
|
```
|
23
42
|
|
24
|
-
|
25
|
-
|
43
|
+
### Login by password
|
44
|
+
The existing <tt>Devise::SessionsController</tt> would be override, so you can not login by your password
|
26
45
|
|
27
46
|
## License
|
28
47
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "rails/generators"
|
2
|
+
require "rails/generators/active_record"
|
3
|
+
|
4
|
+
module DeviseCodeAuthenticatable
|
5
|
+
module Generators
|
6
|
+
class InstallGenerator < Rails::Generators::Base
|
7
|
+
include ::Rails::Generators::Migration
|
8
|
+
|
9
|
+
source_root File.expand_path('../templates', __FILE__)
|
10
|
+
|
11
|
+
def copy_locale
|
12
|
+
copy_file '../../../../config/locales/en.yml', 'config/locales/devise_code_authenticatable.en.yml'
|
13
|
+
end
|
14
|
+
|
15
|
+
def copy_devise_migration
|
16
|
+
migration_template 'migration.rb', "db/migrate/create_login_codes.rb", migration_version: migration_version
|
17
|
+
end
|
18
|
+
|
19
|
+
def migration_version
|
20
|
+
major = ActiveRecord::VERSION::MAJOR
|
21
|
+
if major >= 6
|
22
|
+
"[#{major}.#{ActiveRecord::VERSION::MINOR}]"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.next_migration_number(dirname)
|
27
|
+
::ActiveRecord::Generators::Base.next_migration_number(dirname)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class CreateLoginCodes < ActiveRecord::Migration<%= migration_version %>
|
2
|
+
def change
|
3
|
+
create_table :login_codes do |t|
|
4
|
+
t.string :code
|
5
|
+
t.integer :retry_times
|
6
|
+
t.boolean :expired
|
7
|
+
t.references :resource, polymorphic: true, index: true
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/generators/devise_code_authenticatable/templates/simple_form_for/login_codes/show.html.erb
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
<h2><%= t(".sign_in") %></h2>
|
2
|
+
<%= simple_form_for resource, url: verify_user_login_code_path(@login_code) do |f| %>
|
3
|
+
<%= f.input :email, placeholder: "email" %>
|
4
|
+
<%= f.input :login_code, placeholder: "code" %>
|
5
|
+
<%= f.submit t(".sign_in") %>
|
6
|
+
<% end %>
|
7
|
+
<%= link_to t(".resend_code"), resend_user_login_code_path(@login_code) %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_code_authenticatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vincentying15
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
11
|
+
date: 2020-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -60,6 +60,10 @@ files:
|
|
60
60
|
- lib/devise_code_authenticatable/routes.rb
|
61
61
|
- lib/devise_code_authenticatable/strategies/code_authenticatable.rb
|
62
62
|
- lib/devise_code_authenticatable/version.rb
|
63
|
+
- lib/generators/devise_code_authenticatable/install_generator.rb
|
64
|
+
- lib/generators/devise_code_authenticatable/templates/migration.rb
|
65
|
+
- lib/generators/devise_code_authenticatable/templates/simple_form_for/login_codes/show.html.erb
|
66
|
+
- lib/generators/devise_code_authenticatable/templates/simple_form_for/sessions/new.html.erb
|
63
67
|
homepage: https://rubygems.org/gems/devise_code_authenticatable
|
64
68
|
licenses:
|
65
69
|
- MIT
|