cow_auth 0.5.3 → 0.6.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/Gemfile.lock +9 -9
- data/README.md +2 -3
- data/lib/cow_auth/exceptions.rb +0 -3
- data/lib/cow_auth/user.rb +13 -33
- data/lib/cow_auth/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64a895f28d740efa94c2a8b5684cd97997d4d17cf50376b9859b869ed16b2a07
|
4
|
+
data.tar.gz: 52cba6f14267edb2b7c8e764421a1ec53aef72e96650bbf104be2de2119804f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d23c75c2a71d0e4d1e574f86a2e8adc70e3b018674852b18452475eed477387c6b56f07a3e9aed59b64475eb9e21e3667ce863be852320adc71526de1315c04
|
7
|
+
data.tar.gz: ad348254f5901b73ddd9a5a5ae79aa49305e55ee65cf019ab293f0338245fe1c65ed3bea8acdde0e5b6ce26a328aa64da4dd7c11f69458d90d6b128f93579f9c
|
data/Gemfile.lock
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cow_auth (0.
|
4
|
+
cow_auth (0.6.0)
|
5
5
|
activesupport (~> 5.1)
|
6
6
|
scrypt (~> 3.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
activesupport (5.1
|
11
|
+
activesupport (5.2.1)
|
12
12
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
|
-
i18n (
|
13
|
+
i18n (>= 0.7, < 2)
|
14
14
|
minitest (~> 5.1)
|
15
15
|
tzinfo (~> 1.1)
|
16
16
|
concurrent-ruby (1.0.5)
|
17
|
-
ffi (1.9.
|
17
|
+
ffi (1.9.25)
|
18
18
|
ffi-compiler (1.0.1)
|
19
19
|
ffi (>= 1.0.0)
|
20
20
|
rake
|
21
|
-
i18n (
|
21
|
+
i18n (1.1.0)
|
22
22
|
concurrent-ruby (~> 1.0)
|
23
|
-
minitest (5.11.
|
24
|
-
rake (12.3.
|
23
|
+
minitest (5.11.3)
|
24
|
+
rake (12.3.1)
|
25
25
|
scrypt (3.0.5)
|
26
26
|
ffi-compiler (>= 1.0, < 2.0)
|
27
27
|
thread_safe (0.3.6)
|
28
|
-
tzinfo (1.2.
|
28
|
+
tzinfo (1.2.5)
|
29
29
|
thread_safe (~> 0.1)
|
30
30
|
|
31
31
|
PLATFORMS
|
@@ -38,4 +38,4 @@ DEPENDENCIES
|
|
38
38
|
rake (~> 12.3)
|
39
39
|
|
40
40
|
BUNDLED WITH
|
41
|
-
1.16.
|
41
|
+
1.16.2
|
data/README.md
CHANGED
@@ -26,7 +26,7 @@ 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
|
|
@@ -41,9 +41,8 @@ Configure your user model to add the authentication mechanism.
|
|
41
41
|
t.string :locale, null: false
|
42
42
|
t.string :first_name
|
43
43
|
t.string :last_name
|
44
|
-
t.integer :role, default: 0, null: false
|
45
44
|
t.integer :sign_in_count, default: 0, null: false
|
46
|
-
t.boolean :
|
45
|
+
t.boolean :is_enabled, default: false, null: false
|
47
46
|
t.boolean :is_deleted, default: false, null: false
|
48
47
|
t.timestamps
|
49
48
|
t.index [:uuid], unique: true
|
data/lib/cow_auth/exceptions.rb
CHANGED
data/lib/cow_auth/user.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'scrypt'
|
2
|
-
require 'cow_auth/exceptions'
|
3
2
|
|
4
3
|
module CowAuth
|
5
4
|
module User
|
@@ -26,34 +25,31 @@ module CowAuth
|
|
26
25
|
end
|
27
26
|
|
28
27
|
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
|
28
|
+
if self.auth_token.present? &&
|
29
|
+
self.expires_at.present? &&
|
30
|
+
self.auth_token == auth_token &&
|
31
|
+
self.expires_at > Time.zone.now
|
35
32
|
return true
|
36
33
|
end
|
37
34
|
return false
|
38
35
|
end
|
39
36
|
|
40
37
|
def api_sign_in
|
41
|
-
self.
|
38
|
+
self.update(
|
42
39
|
auth_token: self.token_valid? ? self.auth_token : self.generate_auth_token,
|
43
40
|
expires_at: self.generate_token_expires_at
|
44
|
-
|
41
|
+
)
|
45
42
|
return true
|
46
43
|
end
|
47
44
|
|
48
45
|
def api_sign_out
|
49
|
-
self.
|
46
|
+
self.update(
|
47
|
+
auth_token: nil,
|
48
|
+
expires_at: nil
|
49
|
+
)
|
50
50
|
return true
|
51
51
|
end
|
52
52
|
|
53
|
-
def auth_token
|
54
|
-
return self.fetch_api_key_from_redis(self.sid).try(:[], :auth_token)
|
55
|
-
end
|
56
|
-
|
57
53
|
def password=(new_password)
|
58
54
|
return false if new_password.blank?
|
59
55
|
salt = SCrypt::Engine.generate_salt
|
@@ -63,11 +59,6 @@ module CowAuth
|
|
63
59
|
|
64
60
|
protected
|
65
61
|
|
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
62
|
def generate_auth_token
|
72
63
|
return SecureRandom.hex(64)
|
73
64
|
end
|
@@ -76,21 +67,10 @@ module CowAuth
|
|
76
67
|
return 1.month.from_now
|
77
68
|
end
|
78
69
|
|
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
70
|
def token_valid?
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
api_key.key?(:expires_at) &&
|
93
|
-
api_key[:expires_at] > Time.zone.now
|
71
|
+
return self.auth_token.present? &&
|
72
|
+
self.expires_at.present? &&
|
73
|
+
self.expires_at > Time.zone.now
|
94
74
|
end
|
95
75
|
|
96
76
|
private
|
data/lib/cow_auth/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cow_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mickey Cowden
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
125
|
version: '0'
|
126
126
|
requirements: []
|
127
127
|
rubyforge_project:
|
128
|
-
rubygems_version: 2.7.
|
128
|
+
rubygems_version: 2.7.7
|
129
129
|
signing_key:
|
130
130
|
specification_version: 4
|
131
131
|
summary: Authentication gem
|