cow_auth 0.5.3 → 0.7.1
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/.gitignore +0 -1
- data/.travis.yml +4 -3
- data/CODE_OF_CONDUCT.md +4 -4
- data/Gemfile +3 -2
- data/Gemfile.lock +24 -19
- data/LICENSE.txt +1 -1
- data/README.md +44 -16
- data/cow_auth.gemspec +13 -14
- data/lib/cow_auth.rb +2 -0
- data/lib/cow_auth/exceptions.rb +0 -3
- data/lib/cow_auth/session_auth/authenticate_request.rb +21 -0
- data/lib/cow_auth/session_auth/session_endpoints.rb +32 -0
- data/lib/cow_auth/token_auth/session_endpoints.rb +11 -5
- data/lib/cow_auth/user.rb +24 -47
- data/lib/cow_auth/version.rb +1 -1
- metadata +20 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08bc282855f351e65f119c983bd016fe5d1e1bd25e12ba949022ef07c04df8a6'
|
4
|
+
data.tar.gz: 7fc1a92f50a815fa7f534f24129f032bbaa0f741d2118977a03ff50daf341bb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b499e57597af0995b6aabd9f9184f666b102d32ca6e5cbb067ca7ee2dc6649d0f67cb223fb1fcb97c25f2ca4adaca836e76d1185016612fa0e276b328dc5e60
|
7
|
+
data.tar.gz: 8a1ac0b95249ab9f286554cb735feaef539c8bb70beb0ce180a12e4e40283e6ab4a27eaa472506cffc03f6791aaf3ac9c85d7737f0892628e8a45588b946d68c
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CODE_OF_CONDUCT.md
CHANGED
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
|
|
55
55
|
## Enforcement
|
56
56
|
|
57
57
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
-
reported by contacting the project team at mickey@
|
58
|
+
reported by contacting the project team at mickey@cowden.tech. All
|
59
59
|
complaints will be reviewed and investigated and will result in a response that
|
60
60
|
is deemed necessary and appropriate to the circumstances. The project team is
|
61
61
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
@@ -68,7 +68,7 @@ members of the project's leadership.
|
|
68
68
|
## Attribution
|
69
69
|
|
70
70
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
-
available at [
|
71
|
+
available at [https://contributor-covenant.org/version/1/4][version]
|
72
72
|
|
73
|
-
[homepage]:
|
74
|
-
[version]:
|
73
|
+
[homepage]: https://contributor-covenant.org
|
74
|
+
[version]: https://contributor-covenant.org/version/1/4/
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,41 +1,46 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cow_auth (0.
|
5
|
-
|
4
|
+
cow_auth (0.7.1)
|
5
|
+
activerecord (~> 6.0)
|
6
6
|
scrypt (~> 3.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
|
11
|
+
activemodel (6.1.3)
|
12
|
+
activesupport (= 6.1.3)
|
13
|
+
activerecord (6.1.3)
|
14
|
+
activemodel (= 6.1.3)
|
15
|
+
activesupport (= 6.1.3)
|
16
|
+
activesupport (6.1.3)
|
12
17
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
|
-
i18n (
|
14
|
-
minitest (
|
15
|
-
tzinfo (~>
|
16
|
-
|
17
|
-
|
18
|
+
i18n (>= 1.6, < 2)
|
19
|
+
minitest (>= 5.1)
|
20
|
+
tzinfo (~> 2.0)
|
21
|
+
zeitwerk (~> 2.3)
|
22
|
+
concurrent-ruby (1.1.8)
|
23
|
+
ffi (1.15.0)
|
18
24
|
ffi-compiler (1.0.1)
|
19
25
|
ffi (>= 1.0.0)
|
20
26
|
rake
|
21
|
-
i18n (
|
27
|
+
i18n (1.8.9)
|
22
28
|
concurrent-ruby (~> 1.0)
|
23
|
-
minitest (5.
|
24
|
-
rake (12.3.
|
25
|
-
scrypt (3.0.
|
29
|
+
minitest (5.14.4)
|
30
|
+
rake (12.3.3)
|
31
|
+
scrypt (3.0.7)
|
26
32
|
ffi-compiler (>= 1.0, < 2.0)
|
27
|
-
|
28
|
-
|
29
|
-
|
33
|
+
tzinfo (2.0.4)
|
34
|
+
concurrent-ruby (~> 1.0)
|
35
|
+
zeitwerk (2.4.2)
|
30
36
|
|
31
37
|
PLATFORMS
|
32
38
|
ruby
|
33
39
|
|
34
40
|
DEPENDENCIES
|
35
|
-
bundler (~> 1.16)
|
36
41
|
cow_auth!
|
37
|
-
minitest (~> 5.
|
38
|
-
rake (~> 12.
|
42
|
+
minitest (~> 5.0)
|
43
|
+
rake (~> 12.0)
|
39
44
|
|
40
45
|
BUNDLED WITH
|
41
|
-
|
46
|
+
2.2.15
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# CowAuth
|
2
2
|
|
3
|
-
The
|
3
|
+
The goal of this gem is to provide token-based authentication for Rails (or Rails-like) web applications.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -12,7 +12,7 @@ gem 'cow_auth'
|
|
12
12
|
|
13
13
|
And then execute:
|
14
14
|
|
15
|
-
$ bundle
|
15
|
+
$ bundle install
|
16
16
|
|
17
17
|
Or install it yourself as:
|
18
18
|
|
@@ -26,37 +26,37 @@ Configure your user model to add the authentication mechanism.
|
|
26
26
|
|
27
27
|
#### Generator (Example)
|
28
28
|
|
29
|
-
$ bundle exec rails generate model user uuid:string:uniq email:string:uniq sid:string:uniq encrypted_password:string locale:string first_name:string last_name:string
|
29
|
+
$ bundle exec rails generate model user uuid:string:uniq email:string:uniq sid:string:uniq encrypted_password:string locale:string first_name:string last_name:string sign_in_count:integer is_enabled:boolean is_deleted:boolean
|
30
30
|
|
31
31
|
#### Migration (Example)
|
32
32
|
|
33
33
|
# Modified migration; includes indexes and other stuff you might not want.
|
34
|
-
class CreateUsers < ActiveRecord::Migration[
|
34
|
+
class CreateUsers < ActiveRecord::Migration[6.0]
|
35
35
|
def change
|
36
36
|
create_table :users do |t|
|
37
37
|
t.string :uuid, null: false
|
38
38
|
t.string :email, null: false
|
39
39
|
t.string :sid, null: false
|
40
|
-
t.string :encrypted_password, null: false
|
41
40
|
t.string :locale, null: false
|
41
|
+
t.string :encrypted_password, null: false
|
42
|
+
t.string :auth_token
|
42
43
|
t.string :first_name
|
43
44
|
t.string :last_name
|
44
|
-
t.integer :role, default: 0, null: false
|
45
45
|
t.integer :sign_in_count, default: 0, null: false
|
46
|
-
t.boolean :
|
46
|
+
t.boolean :is_enabled, default: false, null: false
|
47
47
|
t.boolean :is_deleted, default: false, null: false
|
48
|
+
t.timestamp :expires_at
|
48
49
|
t.timestamps
|
49
|
-
t.index [:uuid], unique: true
|
50
|
-
t.index [:email], unique: true
|
51
|
-
t.index [:sid], unique: true
|
52
50
|
end
|
51
|
+
add_index :users, :uuid, unique: true
|
52
|
+
add_index :users, :email, unique: true
|
53
|
+
add_index :users, :sid, unique: true
|
53
54
|
end
|
54
55
|
end
|
55
56
|
|
56
|
-
#### Model
|
57
|
+
#### Model Inheritance
|
57
58
|
|
58
|
-
class User <
|
59
|
-
include CowAuth::User
|
59
|
+
class User < CowAuth::User
|
60
60
|
end
|
61
61
|
|
62
62
|
#### Create User
|
@@ -100,12 +100,40 @@ Add the following private method to the ApplicationController (assuming User is
|
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
-
#### Sessions Controller Example
|
103
|
+
#### Sessions Controller HTML Example
|
104
|
+
|
105
|
+
The `sign_in_success_path` and `sign_out_success_path` methods need to be defined for redirecting after successful sign-in and sign-out.
|
106
|
+
|
107
|
+
class SessionsController < ApplicationController
|
108
|
+
include CowAuth::SessionAuth::SessionEndpoints
|
109
|
+
|
110
|
+
skip_before_action :authenticate_user, only: [:new, :create]
|
111
|
+
|
112
|
+
private
|
113
|
+
|
114
|
+
def sign_in_success_path
|
115
|
+
return root_url
|
116
|
+
end
|
117
|
+
|
118
|
+
def sign_out_success_path
|
119
|
+
return sign_in_url
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
#### Sessions Controller JSON Example
|
124
|
+
|
125
|
+
The `sign_in_success_response_payload` method can optionally be overridden to customize the response payload for a successful sign-in.
|
104
126
|
|
105
127
|
class Api::V1::SessionsController < ApplicationController
|
106
128
|
include CowAuth::TokenAuth::SessionEndpoints
|
107
129
|
|
108
130
|
skip_before_action :authenticate_user, only: [:create]
|
131
|
+
|
132
|
+
protected
|
133
|
+
|
134
|
+
def sign_in_success_response_payload
|
135
|
+
return { uuid: @user.uuid, sid: @user.sid, auth_token: @user.auth_token }
|
136
|
+
end
|
109
137
|
end
|
110
138
|
|
111
139
|
### Token Authentication
|
@@ -138,7 +166,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
138
166
|
|
139
167
|
## Contributing
|
140
168
|
|
141
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/mickey13/
|
169
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/mickey13/cow-auth. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/mickey13/cow-auth/blob/master/CODE_OF_CONDUCT.md).
|
142
170
|
|
143
171
|
## License
|
144
172
|
|
@@ -146,4 +174,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
146
174
|
|
147
175
|
## Code of Conduct
|
148
176
|
|
149
|
-
Everyone interacting in the CowAuth project
|
177
|
+
Everyone interacting in the CowAuth project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/mickey13/cow-auth/blob/master/CODE_OF_CONDUCT.md).
|
data/cow_auth.gemspec
CHANGED
@@ -1,31 +1,30 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'cow_auth/version'
|
1
|
+
require_relative 'lib/cow_auth/version'
|
5
2
|
|
6
3
|
Gem::Specification.new do |spec|
|
7
4
|
spec.name = 'cow_auth'
|
8
5
|
spec.version = CowAuth::VERSION
|
9
6
|
spec.authors = ['Mickey Cowden']
|
10
|
-
spec.email = ['mickey@
|
7
|
+
spec.email = ['mickey@cowden.tech']
|
11
8
|
|
12
9
|
spec.summary = 'Authentication gem'
|
13
|
-
spec.description = 'The
|
10
|
+
spec.description = 'The goal of this gem is to provide token-based authentication for Rails (or Rails-like) web applications.'
|
14
11
|
spec.homepage = 'https://github.com/mickey13/cow-auth'
|
15
12
|
spec.license = 'MIT'
|
13
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
|
14
|
+
|
15
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
16
|
+
spec.metadata['source_code_uri'] = spec.homepage
|
17
|
+
spec.metadata['changelog_uri'] = spec.homepage
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
+
# Specify which files should be added to the gem when it is released.
|
20
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
21
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
22
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
23
|
end
|
20
24
|
spec.bindir = 'exe'
|
21
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
26
|
spec.require_paths = ['lib']
|
23
27
|
|
24
|
-
spec.
|
25
|
-
|
26
|
-
spec.add_development_dependency 'bundler', '~> 1.16'
|
27
|
-
spec.add_development_dependency 'rake', '~> 12.3'
|
28
|
-
spec.add_development_dependency 'minitest', '~> 5.11'
|
29
|
-
spec.add_runtime_dependency 'activesupport', '~> 5.1'
|
28
|
+
spec.add_runtime_dependency 'activerecord', '~> 6.0'
|
30
29
|
spec.add_runtime_dependency 'scrypt', '~> 3.0'
|
31
30
|
end
|
data/lib/cow_auth.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'cow_auth/version'
|
2
2
|
require 'cow_auth/user'
|
3
3
|
require 'cow_auth/exceptions'
|
4
|
+
require 'cow_auth/session_auth/session_endpoints'
|
5
|
+
require 'cow_auth/session_auth/authenticate_request'
|
4
6
|
require 'cow_auth/token_auth/session_endpoints'
|
5
7
|
require 'cow_auth/token_auth/authenticate_request'
|
6
8
|
|
data/lib/cow_auth/exceptions.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'cow_auth/exceptions'
|
2
|
+
|
3
|
+
module CowAuth
|
4
|
+
module SessionAuth
|
5
|
+
module AuthenticateRequest
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def authenticate_user
|
11
|
+
@current_user = authentication_class.find_by(sid: session[:current_user])
|
12
|
+
raise CowAuth::NotAuthenticatedError.new('User not authenticated.') if @current_user.blank?
|
13
|
+
return true
|
14
|
+
end
|
15
|
+
|
16
|
+
def current_user
|
17
|
+
return @current_user
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'cow_auth/exceptions'
|
2
|
+
|
3
|
+
module CowAuth
|
4
|
+
module SessionAuth
|
5
|
+
module SessionEndpoints
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
def new
|
9
|
+
end
|
10
|
+
|
11
|
+
def create
|
12
|
+
user = authentication_class.find_by(email: params[:email])
|
13
|
+
if user.try(:authenticate_with_password, params[:password])
|
14
|
+
session[:current_user] = user.sid
|
15
|
+
redirect_to sign_in_success_path
|
16
|
+
else
|
17
|
+
session[:current_user] = nil
|
18
|
+
raise CowAuth::NotAuthenticatedError.new('Invalid user credentials.')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def destroy
|
23
|
+
if @current_user.present?
|
24
|
+
session[:current_user] = nil
|
25
|
+
redirect_to sign_out_success_path
|
26
|
+
else
|
27
|
+
raise CowAuth::StandardError.new('Could not sign user out.')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -6,22 +6,28 @@ module CowAuth
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
8
|
def create
|
9
|
-
user = authentication_class.find_by(email: params[:email])
|
10
|
-
if user.try(:authenticate_with_password, params[:password])
|
11
|
-
user.
|
12
|
-
render json:
|
9
|
+
@user = authentication_class.find_by(email: params[:email])
|
10
|
+
if @user.try(:authenticate_with_password, params[:password])
|
11
|
+
@user.create_auth_token
|
12
|
+
render json: self.sign_in_success_response_payload, status: :ok
|
13
13
|
else
|
14
14
|
raise CowAuth::NotAuthenticatedError.new('Invalid user credentials.')
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
def destroy
|
19
|
-
if @current_user.try(:
|
19
|
+
if @current_user.try(:destroy_auth_token)
|
20
20
|
head :no_content
|
21
21
|
else
|
22
22
|
raise CowAuth::NotAuthenticatedError.new('Could not sign user out.')
|
23
23
|
end
|
24
24
|
end
|
25
|
+
|
26
|
+
protected
|
27
|
+
|
28
|
+
def sign_in_success_response_payload
|
29
|
+
return { sid: @user.sid, auth_token: @user.auth_token }
|
30
|
+
end
|
25
31
|
end
|
26
32
|
end
|
27
33
|
end
|
data/lib/cow_auth/user.rb
CHANGED
@@ -1,20 +1,16 @@
|
|
1
|
+
require 'active_record'
|
1
2
|
require 'scrypt'
|
2
|
-
require 'cow_auth/exceptions'
|
3
3
|
|
4
4
|
module CowAuth
|
5
|
-
|
6
|
-
|
5
|
+
class User < ActiveRecord::Base
|
6
|
+
after_initialize :generate_sid_if_necessary
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
validates :sid, presence: true
|
15
|
-
validates :sid, uniqueness: true
|
16
|
-
validates :sid, format: { with: /\AC[a-z0-9]{32}\z/ }
|
17
|
-
end
|
8
|
+
validates :email, presence: true
|
9
|
+
validates :email, uniqueness: true
|
10
|
+
validates :encrypted_password, presence: true
|
11
|
+
validates :sid, presence: true
|
12
|
+
validates :sid, uniqueness: true
|
13
|
+
validates :sid, format: { with: /\AC[a-z0-9]{32}\z/ }
|
18
14
|
|
19
15
|
def authenticate_with_password(password)
|
20
16
|
return false if self.encrypted_password.blank?
|
@@ -26,34 +22,31 @@ module CowAuth
|
|
26
22
|
end
|
27
23
|
|
28
24
|
def authenticate_with_token(auth_token)
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
api_key[:auth_token] == auth_token &&
|
34
|
-
api_key[:expires_at] > Time.zone.now
|
25
|
+
if self.auth_token.present? &&
|
26
|
+
self.expires_at.present? &&
|
27
|
+
self.auth_token == auth_token &&
|
28
|
+
self.expires_at > Time.zone.now
|
35
29
|
return true
|
36
30
|
end
|
37
31
|
return false
|
38
32
|
end
|
39
33
|
|
40
|
-
def
|
41
|
-
self.
|
34
|
+
def create_auth_token
|
35
|
+
self.update(
|
42
36
|
auth_token: self.token_valid? ? self.auth_token : self.generate_auth_token,
|
43
37
|
expires_at: self.generate_token_expires_at
|
44
|
-
|
38
|
+
)
|
45
39
|
return true
|
46
40
|
end
|
47
41
|
|
48
|
-
def
|
49
|
-
self.
|
42
|
+
def destroy_auth_token
|
43
|
+
self.update(
|
44
|
+
auth_token: nil,
|
45
|
+
expires_at: nil
|
46
|
+
)
|
50
47
|
return true
|
51
48
|
end
|
52
49
|
|
53
|
-
def auth_token
|
54
|
-
return self.fetch_api_key_from_redis(self.sid).try(:[], :auth_token)
|
55
|
-
end
|
56
|
-
|
57
50
|
def password=(new_password)
|
58
51
|
return false if new_password.blank?
|
59
52
|
salt = SCrypt::Engine.generate_salt
|
@@ -63,11 +56,6 @@ module CowAuth
|
|
63
56
|
|
64
57
|
protected
|
65
58
|
|
66
|
-
def fetch_api_key_from_redis(sid)
|
67
|
-
api_key = self.redis_handle.get(self.redis_key)
|
68
|
-
return api_key.present? ? JSON.parse(api_key).try(:symbolize_keys) : nil
|
69
|
-
end
|
70
|
-
|
71
59
|
def generate_auth_token
|
72
60
|
return SecureRandom.hex(64)
|
73
61
|
end
|
@@ -76,21 +64,10 @@ module CowAuth
|
|
76
64
|
return 1.month.from_now
|
77
65
|
end
|
78
66
|
|
79
|
-
def redis_handle
|
80
|
-
raise CowAuth::RedisHandleMissingError.new('"$redis" handle not found.') unless $redis.present?
|
81
|
-
return $redis
|
82
|
-
end
|
83
|
-
|
84
|
-
def redis_key
|
85
|
-
return "user_#{self.sid.downcase}"
|
86
|
-
end
|
87
|
-
|
88
67
|
def token_valid?
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
api_key.key?(:expires_at) &&
|
93
|
-
api_key[:expires_at] > Time.zone.now
|
68
|
+
return self.auth_token.present? &&
|
69
|
+
self.expires_at.present? &&
|
70
|
+
self.expires_at > Time.zone.now
|
94
71
|
end
|
95
72
|
|
96
73
|
private
|
data/lib/cow_auth/version.rb
CHANGED
metadata
CHANGED
@@ -1,71 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cow_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mickey Cowden
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.16'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '12.3'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '12.3'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: minitest
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '5.11'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '5.11'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: activesupport
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '5.1'
|
19
|
+
version: '6.0'
|
62
20
|
type: :runtime
|
63
21
|
prerelease: false
|
64
22
|
version_requirements: !ruby/object:Gem::Requirement
|
65
23
|
requirements:
|
66
24
|
- - "~>"
|
67
25
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
26
|
+
version: '6.0'
|
69
27
|
- !ruby/object:Gem::Dependency
|
70
28
|
name: scrypt
|
71
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,10 +38,10 @@ dependencies:
|
|
80
38
|
- - "~>"
|
81
39
|
- !ruby/object:Gem::Version
|
82
40
|
version: '3.0'
|
83
|
-
description: The
|
84
|
-
|
41
|
+
description: The goal of this gem is to provide token-based authentication for Rails
|
42
|
+
(or Rails-like) web applications.
|
85
43
|
email:
|
86
|
-
- mickey@
|
44
|
+
- mickey@cowden.tech
|
87
45
|
executables: []
|
88
46
|
extensions: []
|
89
47
|
extra_rdoc_files: []
|
@@ -101,6 +59,8 @@ files:
|
|
101
59
|
- cow_auth.gemspec
|
102
60
|
- lib/cow_auth.rb
|
103
61
|
- lib/cow_auth/exceptions.rb
|
62
|
+
- lib/cow_auth/session_auth/authenticate_request.rb
|
63
|
+
- lib/cow_auth/session_auth/session_endpoints.rb
|
104
64
|
- lib/cow_auth/token_auth/authenticate_request.rb
|
105
65
|
- lib/cow_auth/token_auth/session_endpoints.rb
|
106
66
|
- lib/cow_auth/user.rb
|
@@ -108,25 +68,27 @@ files:
|
|
108
68
|
homepage: https://github.com/mickey13/cow-auth
|
109
69
|
licenses:
|
110
70
|
- MIT
|
111
|
-
metadata:
|
112
|
-
|
71
|
+
metadata:
|
72
|
+
homepage_uri: https://github.com/mickey13/cow-auth
|
73
|
+
source_code_uri: https://github.com/mickey13/cow-auth
|
74
|
+
changelog_uri: https://github.com/mickey13/cow-auth
|
75
|
+
post_install_message:
|
113
76
|
rdoc_options: []
|
114
77
|
require_paths:
|
115
78
|
- lib
|
116
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
117
80
|
requirements:
|
118
|
-
- - "
|
81
|
+
- - ">="
|
119
82
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
83
|
+
version: 2.3.0
|
121
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
85
|
requirements:
|
123
86
|
- - ">="
|
124
87
|
- !ruby/object:Gem::Version
|
125
88
|
version: '0'
|
126
89
|
requirements: []
|
127
|
-
|
128
|
-
|
129
|
-
signing_key:
|
90
|
+
rubygems_version: 3.2.15
|
91
|
+
signing_key:
|
130
92
|
specification_version: 4
|
131
93
|
summary: Authentication gem
|
132
94
|
test_files: []
|