token_authenticate_me 0.5.3 → 0.5.4
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/README.md +21 -26
- data/app/controllers/token_authenticate_me/api/v1/base_controller.rb +1 -2
- data/app/controllers/token_authenticate_me/api/v1/sessions_controller.rb +4 -2
- data/app/models/token_authenticate_me/default_token_handler.rb +0 -0
- data/app/views/token_authenticate_me_mailer/session/new.html.erb +0 -0
- data/lib/token_authenticate_me/authentication.rb +24 -0
- data/lib/token_authenticate_me/concerns/controllers/authenticateable.rb +33 -0
- data/lib/token_authenticate_me/concerns/controllers/session_authenticateable.rb +47 -0
- data/lib/token_authenticate_me/concerns/controllers/session_sessionable.rb +50 -0
- data/lib/token_authenticate_me/concerns/controllers/sessionable.rb +17 -28
- data/lib/token_authenticate_me/concerns/controllers/token_authenticateable.rb +11 -21
- data/lib/token_authenticate_me/concerns/controllers/token_sessionable.rb +47 -0
- data/lib/token_authenticate_me/header_authentication.rb +20 -0
- data/lib/token_authenticate_me/session_authentication.rb +24 -0
- data/lib/token_authenticate_me/version.rb +1 -1
- data/lib/token_authenticate_me.rb +18 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 014ea05ef85b51fefd546c3810d22ceb01c1949a
|
4
|
+
data.tar.gz: 32299428b5e1198b06350a8b3cc5c6e9ca56e291
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77265c9a971f4cd560dc6cf6ce3272d86c42ebba02d29714147e34f59f047ede1227ef88bb52a38beabc3a8541fcf6867fec752a415848afc160ba45e3593c5b
|
7
|
+
data.tar.gz: fe1899c608ce5be093d59417eb03beaf2431e7c3807637bb8a43897aa693ee95e1a18310fb5564655496795ee0339e95145892162ca18ea6ae5efff7f09ec248
|
data/README.md
CHANGED
@@ -10,25 +10,31 @@ Add the gem to your Gemfile:
|
|
10
10
|
|
11
11
|
Run `bundle install` to install it.
|
12
12
|
|
13
|
-
To
|
14
|
-
`rails generate token_authenticate_me:install
|
13
|
+
To install run the following:
|
14
|
+
`rails generate token_authenticate_me:install`
|
15
15
|
|
16
|
-
|
16
|
+
Include `TokenAuthenticateMe::Concerns::Controllers::TokenAuthenticateable` into api controllers that require authorization:
|
17
|
+
````rb
|
18
|
+
require 'token_authenticate_me/concerns/controllers/token_authenticateable'
|
17
19
|
|
18
|
-
|
20
|
+
class ApiController < ApplicationController
|
21
|
+
include TokenAuthenticateMe::Concerns::Controllers::TokenAuthenticateable
|
19
22
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
+
skip_before_filter :verify_authenticity_token # CSRF is not needed for header or param based auth
|
24
|
+
|
25
|
+
#...
|
26
|
+
end
|
27
|
+
````
|
23
28
|
|
24
|
-
|
25
|
-
|
29
|
+
Include `TokenAuthenticateMe::Concerns::Controllers::SessionAuthenticateable` into server rendered page controllers that require authorization:
|
30
|
+
````rb
|
31
|
+
require 'token_authenticate_me/concerns/controllers/session_authenticateable'
|
26
32
|
|
33
|
+
class AuthenticatedController < ApplicationController
|
27
34
|
# Prevent CSRF attacks by raising an exception.
|
28
|
-
# For APIs, you may want to use :null_session instead.
|
29
35
|
protect_from_forgery with: :exception
|
30
36
|
|
31
|
-
include TokenAuthenticateMe::Controllers::
|
37
|
+
include TokenAuthenticateMe::Concerns::Controllers::SessionAuthenticateable
|
32
38
|
|
33
39
|
#...
|
34
40
|
end
|
@@ -44,16 +50,10 @@ end
|
|
44
50
|
````
|
45
51
|
|
46
52
|
## Authentication Model
|
47
|
-
The model
|
48
|
-
|
49
|
-
|
50
|
-
*
|
51
|
-
* `password_digest:string`
|
52
|
-
* `username:string`
|
53
|
-
* `reset_password_token:string`
|
54
|
-
* `reset_password_token_exp:datetime`
|
55
|
-
|
56
|
-
This model will have a set of [validators](https://github.com/inigo-llc/token_authenticate_me/blob/master/lib/token_authenticate_me/models/authenticatable.rb#L11) added to it.
|
53
|
+
The model has 3 concerns:
|
54
|
+
* [Authenticatable](https://github.com/wildland/token_authenticate_me/blob/master/lib/token_authenticate_me/concerns/models/authenticatable.rb)
|
55
|
+
* [Invitable](https://github.com/wildland/token_authenticate_me/blob/master/lib/token_authenticate_me/concerns/models/invitable.rb)
|
56
|
+
* [Sessionable](https://github.com/wildland/token_authenticate_me/blob/master/lib/token_authenticate_me/concerns/models/sessionable.rb)
|
57
57
|
|
58
58
|
*tl;dr*:
|
59
59
|
* `email` is required, can't be blank, is unique (case insensitive), and must look like an email address.
|
@@ -61,10 +61,5 @@ This model will have a set of [validators](https://github.com/inigo-llc/token_au
|
|
61
61
|
* `username` is required, can't be blank, is unique (case insensitive), and only allows alphanumeric values.
|
62
62
|
* To change the `password` or `email` after the model has been persisted, you will need to provide the current password as `current_password`.
|
63
63
|
|
64
|
-
#### TODO:
|
65
|
-
- [ ] Make it so any resource name can be used for authentication (initial thought is either specify the default or pass resource name in token string?).
|
66
|
-
- [ ] Allow users to specify the API namespace default.
|
67
|
-
- [ ] Add a way to override/change/configure validations.
|
68
|
-
|
69
64
|
## Code Of Conduct
|
70
65
|
Wildland Open Source [Code Of Conduct](https://github.com/wildland/code-of-conduct)
|
@@ -1,10 +1,12 @@
|
|
1
|
-
require 'token_authenticate_me/concerns/controllers/
|
1
|
+
require 'token_authenticate_me/concerns/controllers/token_authenticateable'
|
2
|
+
require 'token_authenticate_me/concerns/controllers/token_sessionable'
|
2
3
|
|
3
4
|
module TokenAuthenticateMe
|
4
5
|
module Api
|
5
6
|
module V1
|
6
7
|
class SessionsController < BaseController
|
7
|
-
include TokenAuthenticateMe::Concerns::Controllers::
|
8
|
+
include TokenAuthenticateMe::Concerns::Controllers::TokenAuthenticateable
|
9
|
+
include TokenAuthenticateMe::Concerns::Controllers::TokenSessionable
|
8
10
|
end
|
9
11
|
end
|
10
12
|
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module TokenAuthenticateMe
|
2
|
+
class Authentication
|
3
|
+
def self.default_token_handler(token, _options)
|
4
|
+
session = TokenAuthenticateMe::Session.find_by_key(token)
|
5
|
+
|
6
|
+
if session && session.expiration > DateTime.now
|
7
|
+
session
|
8
|
+
else
|
9
|
+
false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_reader :token, :token_handler
|
14
|
+
|
15
|
+
def initialize(token:, token_handler: TokenAuthenticateMe::Authentication.method(:default_token_handler))
|
16
|
+
@token = token
|
17
|
+
@token_handler = token_handler
|
18
|
+
end
|
19
|
+
|
20
|
+
def authenticate(options = {})
|
21
|
+
token_handler.call(token, options)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
require 'token_authenticate_me/authentication'
|
3
|
+
|
4
|
+
module TokenAuthenticateMe
|
5
|
+
module Concerns
|
6
|
+
module Controllers
|
7
|
+
module Authenticateable
|
8
|
+
extend ActiveSupport::Concern
|
9
|
+
|
10
|
+
# Standard authentication routine, override to implement different auth strategies.
|
11
|
+
def token_handler(token, options)
|
12
|
+
authentication = TokenAuthenticateMe::Authentication.new(token: token)
|
13
|
+
authentication.authenticate(options)
|
14
|
+
end
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
# `authenticated_session` and `render_unauthorized` are specific to controllers.
|
19
|
+
# Ex:
|
20
|
+
# Could render json or http status code for unauthorized, or could redirect to a different url for server rendered pages.
|
21
|
+
# Could authenticate using headers or params, or cookie sessions depending on controller type.
|
22
|
+
def authenticate
|
23
|
+
authenticated_session || render_unauthorized
|
24
|
+
end
|
25
|
+
|
26
|
+
def current_user
|
27
|
+
return unless authenticated_session
|
28
|
+
@current_user ||= User.find_by_id(authenticated_session.user_id)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
require 'token_authenticate_me/concerns/controllers/authenticateable'
|
3
|
+
require 'token_authenticate_me/session_authentication'
|
4
|
+
|
5
|
+
# This module provides cookie based session authentication for server rendered pages.
|
6
|
+
# If using this module, make sure CSRF is enabled to prevent CSRF attacks.
|
7
|
+
|
8
|
+
module TokenAuthenticateMe
|
9
|
+
module Concerns
|
10
|
+
module Controllers
|
11
|
+
module SessionAuthenticateable
|
12
|
+
extend ActiveSupport::Concern
|
13
|
+
|
14
|
+
include TokenAuthenticateMe::Concerns::Controllers::Authenticateable
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
def authenticated_session
|
19
|
+
@session ||= authenticate_with_session
|
20
|
+
end
|
21
|
+
|
22
|
+
def authenticate_with_session
|
23
|
+
session_authentication = TokenAuthenticateMe::SessionAuthentication.new(controller: self)
|
24
|
+
session_authentication.authenticate
|
25
|
+
end
|
26
|
+
|
27
|
+
def return_to_url
|
28
|
+
session[:return_to]
|
29
|
+
end
|
30
|
+
|
31
|
+
def save_return_to_url
|
32
|
+
session[:return_to] = request.url
|
33
|
+
end
|
34
|
+
|
35
|
+
def redirect_to_login
|
36
|
+
redirect_to login_url
|
37
|
+
end
|
38
|
+
|
39
|
+
def render_unauthorized
|
40
|
+
save_return_to_url
|
41
|
+
flash.now[:error] = "You must be logged in to access this section"
|
42
|
+
redirect_to_login
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
require 'token_authenticate_me/concerns/controllers/sessionable'
|
3
|
+
|
4
|
+
module TokenAuthenticateMe
|
5
|
+
module Concerns
|
6
|
+
module Controllers
|
7
|
+
module SessionSessionable
|
8
|
+
extend ActiveSupport::Concern
|
9
|
+
|
10
|
+
include Sessionable
|
11
|
+
|
12
|
+
included do
|
13
|
+
skip_before_action :authenticate, only: [:new, :create]
|
14
|
+
|
15
|
+
def new
|
16
|
+
end
|
17
|
+
|
18
|
+
def create
|
19
|
+
if authenticate_resource
|
20
|
+
@session = create_session!(resource)
|
21
|
+
session[:key] = @session.key
|
22
|
+
if return_to_url
|
23
|
+
redirect_to_login
|
24
|
+
else
|
25
|
+
redirect_to root_url
|
26
|
+
end
|
27
|
+
else
|
28
|
+
flash.now[:error] = "Invalid username or password"
|
29
|
+
redirect_to_login
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def destroy
|
34
|
+
unauthenticate_resource
|
35
|
+
redirect_to return_to_url
|
36
|
+
|
37
|
+
rescue
|
38
|
+
render_unauthorized
|
39
|
+
end
|
40
|
+
|
41
|
+
protected
|
42
|
+
|
43
|
+
def session_params
|
44
|
+
params.require(:session).permit(:username, :password)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'active_support/concern'
|
2
|
-
|
3
2
|
require 'token_authenticate_me/concerns/controllers/token_authenticateable'
|
4
3
|
|
5
4
|
module TokenAuthenticateMe
|
@@ -8,43 +7,33 @@ module TokenAuthenticateMe
|
|
8
7
|
module Sessionable
|
9
8
|
extend ActiveSupport::Concern
|
10
9
|
|
11
|
-
include TokenAuthenticateMe::Concerns::Controllers::TokenAuthenticateable
|
12
|
-
|
13
10
|
included do
|
14
|
-
|
15
|
-
after_action :cleanup_sessions, only: [:destroy]
|
16
|
-
|
17
|
-
def create
|
18
|
-
resource = User.where('username=? OR email=?', params[:username], params[:username]).first
|
19
|
-
if resource && resource.authenticate(params[:password])
|
20
|
-
@session = Session.create(user_id: resource.id)
|
21
|
-
render json: @session, status: 201
|
22
|
-
else
|
23
|
-
render json: { message: 'Bad credentials' }, status: 401
|
24
|
-
end
|
25
|
-
end
|
11
|
+
after_action :cleanup_sessions, only: [:create, :destroy]
|
26
12
|
|
27
|
-
|
28
|
-
@session = authenticate_token
|
29
|
-
render json: @session
|
30
|
-
end
|
13
|
+
protected
|
31
14
|
|
32
|
-
def
|
33
|
-
|
15
|
+
def unauthenticate_resource
|
16
|
+
authenticated_session.destroy!
|
17
|
+
end
|
34
18
|
|
35
|
-
|
36
|
-
|
37
|
-
render_unauthorized
|
19
|
+
def create_session!(authenticated_resource)
|
20
|
+
Session.create!(user_id: authenticated_resource.id)
|
38
21
|
end
|
39
22
|
|
40
|
-
|
23
|
+
def resource
|
24
|
+
@resource ||= User.where('username=? OR email=?', session_params[:username], session_params[:username]).first
|
25
|
+
end
|
41
26
|
|
42
|
-
def
|
43
|
-
|
27
|
+
def authenticate_resource
|
28
|
+
if resource && resource.authenticate(session_params[:password])
|
29
|
+
resource
|
30
|
+
else
|
31
|
+
nil
|
32
|
+
end
|
44
33
|
end
|
45
34
|
|
46
35
|
def cleanup_sessions
|
47
|
-
|
36
|
+
Session.where('expiration < ?', DateTime.now).delete_all
|
48
37
|
rescue
|
49
38
|
Rails.logger.warn 'Error cleaning up old authentication sessions'
|
50
39
|
end
|
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'active_support/concern'
|
2
|
+
require 'token_authenticate_me/concerns/controllers/authenticateable'
|
3
|
+
require 'token_authenticate_me/header_authentication'
|
2
4
|
|
3
5
|
module TokenAuthenticateMe
|
4
6
|
module Concerns
|
@@ -6,25 +8,22 @@ module TokenAuthenticateMe
|
|
6
8
|
module TokenAuthenticateable
|
7
9
|
extend ActiveSupport::Concern
|
8
10
|
|
11
|
+
include TokenAuthenticateMe::Concerns::Controllers::Authenticateable
|
12
|
+
|
9
13
|
included do
|
10
|
-
before_action :authenticate
|
14
|
+
before_action :authenticate # By default authenticate every action
|
11
15
|
end
|
12
16
|
|
13
|
-
protected
|
14
17
|
|
15
|
-
|
16
|
-
authenticate_token || render_unauthorized
|
17
|
-
end
|
18
|
+
protected
|
18
19
|
|
19
|
-
def
|
20
|
-
|
21
|
-
@current_user ||= User.find_by_id(authenticate_token.user_id)
|
20
|
+
def authenticated_session
|
21
|
+
@session ||= authenticate_with_header
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
27
|
-
)
|
24
|
+
def authenticate_with_header
|
25
|
+
header_authentication = TokenAuthenticateMe::HeaderAuthentication.new(controller: self)
|
26
|
+
header_authentication.authenticate
|
28
27
|
end
|
29
28
|
|
30
29
|
def authenticate_with_params
|
@@ -36,15 +35,6 @@ module TokenAuthenticateMe
|
|
36
35
|
headers['WWW-Authenticate'] = 'Token realm="Application"'
|
37
36
|
render json: 'Bad credentials', status: 401
|
38
37
|
end
|
39
|
-
|
40
|
-
def token_handler(token, _options)
|
41
|
-
session = TokenAuthenticateMe::Session.find_by_key(token)
|
42
|
-
if session && session.expiration > DateTime.now
|
43
|
-
session
|
44
|
-
else
|
45
|
-
false
|
46
|
-
end
|
47
|
-
end
|
48
38
|
end
|
49
39
|
end
|
50
40
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
require 'token_authenticate_me/concerns/controllers/sessionable'
|
3
|
+
|
4
|
+
module TokenAuthenticateMe
|
5
|
+
module Concerns
|
6
|
+
module Controllers
|
7
|
+
module TokenSessionable
|
8
|
+
extend ActiveSupport::Concern
|
9
|
+
|
10
|
+
include Sessionable
|
11
|
+
|
12
|
+
included do
|
13
|
+
skip_before_action :authenticate, only: [:create]
|
14
|
+
|
15
|
+
def create
|
16
|
+
if authenticate_resource
|
17
|
+
@session = create_session!(resource)
|
18
|
+
render json: @session, status: 201
|
19
|
+
else
|
20
|
+
render json: { message: 'Bad credentials' }, status: 401
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def show
|
25
|
+
@session = authenticated_session
|
26
|
+
render json: @session
|
27
|
+
end
|
28
|
+
|
29
|
+
def destroy
|
30
|
+
unauthenticate_resource
|
31
|
+
|
32
|
+
render status: 204, nothing: true
|
33
|
+
rescue
|
34
|
+
render_unauthorized
|
35
|
+
end
|
36
|
+
|
37
|
+
protected
|
38
|
+
|
39
|
+
def session_params
|
40
|
+
params.permit(:username, :password)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module TokenAuthenticateMe
|
2
|
+
class HeaderAuthentication
|
3
|
+
attr :controller
|
4
|
+
|
5
|
+
def initialize(controller:)
|
6
|
+
@controller = controller
|
7
|
+
end
|
8
|
+
|
9
|
+
def authenticate(options = {})
|
10
|
+
controller.authenticate_with_http_token(&method(:token_handler))
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def token_handler(token, options)
|
16
|
+
token_handler = controller.token_handler(token, options)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module TokenAuthenticateMe
|
2
|
+
class SessionAuthentication
|
3
|
+
attr :controller
|
4
|
+
|
5
|
+
def initialize(controller:)
|
6
|
+
@controller = controller
|
7
|
+
end
|
8
|
+
|
9
|
+
def authenticate(options = {})
|
10
|
+
token = session_key
|
11
|
+
token_handler(token, options)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def token_handler(token, options)
|
17
|
+
controller.token_handler(token, options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def session_key
|
21
|
+
controller.session[:key]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -7,6 +7,24 @@ module TokenAuthenticateMe
|
|
7
7
|
|
8
8
|
UUID_REGEX = /([a-f0-9]){32}/
|
9
9
|
|
10
|
+
module Concerns
|
11
|
+
module Controllers
|
12
|
+
autoload :Authenticatable, 'token_authenticate_me/concerns/controllers/authenticateable'
|
13
|
+
autoload :Invitable, 'token_authenticate_me/concerns/controllers/invitable'
|
14
|
+
autoload :PasswordResetable, 'token_authenticate_me/concerns/controllers/password_resetable'
|
15
|
+
autoload :SessionAuthenticateable, 'token_authenticate_me/concerns/controllers/session_authenticateable'
|
16
|
+
autoload :Sessionable, 'token_authenticate_me/concerns/controllers/sessionable'
|
17
|
+
autoload :TokenAuthenticateable, 'token_authenticate_me/concerns/controllers/token_authenticateable'
|
18
|
+
autoload :TokenSessionable, 'token_authenticate_me/concerns/controllers/token_sessionable'
|
19
|
+
end
|
20
|
+
|
21
|
+
module Models
|
22
|
+
autoload :Authenticatable, 'token_authenticate_me/concerns/models/authenticatable'
|
23
|
+
autoload :Invitable, 'token_authenticate_me/concerns/models/invitable'
|
24
|
+
autoload :Sessionable, 'token_authenticate_me/concerns/models/sessionable'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
10
28
|
def configure
|
11
29
|
yield configuration
|
12
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: token_authenticate_me
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Clopton
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-10-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -71,12 +71,14 @@ files:
|
|
71
71
|
- app/controllers/token_authenticate_me/application_controller.rb
|
72
72
|
- app/helpers/token_authenticate_me/application_helper.rb
|
73
73
|
- app/mailers/token_authenticate_me_mailer.rb
|
74
|
+
- app/models/token_authenticate_me/default_token_handler.rb
|
74
75
|
- app/models/token_authenticate_me/invite.rb
|
75
76
|
- app/models/token_authenticate_me/session.rb
|
76
77
|
- app/models/token_authenticate_me/user.rb
|
77
78
|
- app/views/token_authenticate_me_mailer/invalid_user_reset_password_email.html.erb
|
78
79
|
- app/views/token_authenticate_me_mailer/invalid_user_reset_password_email.text.erb
|
79
80
|
- app/views/token_authenticate_me_mailer/invite_user_email.html.erb
|
81
|
+
- app/views/token_authenticate_me_mailer/session/new.html.erb
|
80
82
|
- app/views/token_authenticate_me_mailer/valid_user_reset_password_email.html.erb
|
81
83
|
- app/views/token_authenticate_me_mailer/valid_user_reset_password_email.text.erb
|
82
84
|
- config/routes.rb
|
@@ -91,16 +93,23 @@ files:
|
|
91
93
|
- lib/generators/token_authenticate_me/policies/templates/user_policy.rb
|
92
94
|
- lib/tasks/token_authenticate_me_tasks.rake
|
93
95
|
- lib/token_authenticate_me.rb
|
96
|
+
- lib/token_authenticate_me/authentication.rb
|
97
|
+
- lib/token_authenticate_me/concerns/controllers/authenticateable.rb
|
94
98
|
- lib/token_authenticate_me/concerns/controllers/invitable.rb
|
95
99
|
- lib/token_authenticate_me/concerns/controllers/password_resetable.rb
|
100
|
+
- lib/token_authenticate_me/concerns/controllers/session_authenticateable.rb
|
101
|
+
- lib/token_authenticate_me/concerns/controllers/session_sessionable.rb
|
96
102
|
- lib/token_authenticate_me/concerns/controllers/sessionable.rb
|
97
103
|
- lib/token_authenticate_me/concerns/controllers/token_authenticateable.rb
|
104
|
+
- lib/token_authenticate_me/concerns/controllers/token_sessionable.rb
|
98
105
|
- lib/token_authenticate_me/concerns/models/authenticatable.rb
|
99
106
|
- lib/token_authenticate_me/concerns/models/invitable.rb
|
100
107
|
- lib/token_authenticate_me/concerns/models/sessionable.rb
|
101
108
|
- lib/token_authenticate_me/configuration.rb
|
102
109
|
- lib/token_authenticate_me/engine.rb
|
110
|
+
- lib/token_authenticate_me/header_authentication.rb
|
103
111
|
- lib/token_authenticate_me/models.rb
|
112
|
+
- lib/token_authenticate_me/session_authentication.rb
|
104
113
|
- lib/token_authenticate_me/version.rb
|
105
114
|
- test/dummy/README.rdoc
|
106
115
|
- test/dummy/Rakefile
|