jwt_auth_token 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jwt_auth_token.rb +41 -5
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9bf140cdd2ae6a402ad29ec5eb50a91c3d3e047
|
4
|
+
data.tar.gz: bfb436491494f03e3bf54182b8f873ff5e09fac9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b9a87d580d5e3ccc86841864fb6e9abf1f5c4e6f07460578c4ace581ec7ee4a7ed8e2a7010022c17b6b5694c3724d5c6307ba77d9602bc2aedfd9d1bbe0df77
|
7
|
+
data.tar.gz: 4c53a29f598ecd2710f37a80a895e15e2b0fb6f8b93e20f7eaa21fc7bd911fea8487ef4f6624bea29ac0dca3119572e9f2f58107a6523ffa149476cd49ddd59f
|
data/lib/jwt_auth_token.rb
CHANGED
@@ -1,9 +1,45 @@
|
|
1
|
-
|
1
|
+
module JwtAuthToken
|
2
|
+
end
|
3
|
+
require 'jwt'
|
4
|
+
def jwt_hmac_secret
|
5
|
+
@_jwt_hmac_secret ||= Rails.application.secrets[:secret_key_base]
|
6
|
+
end
|
7
|
+
|
8
|
+
def jwt_algorithm
|
9
|
+
@_jwt_algorithm ||= 'HS512'
|
10
|
+
end
|
11
|
+
|
12
|
+
def header_name
|
13
|
+
@_header_name ||= "embibe-token"
|
14
|
+
end
|
2
15
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
16
|
+
def jwt_set_header(data)
|
17
|
+
encoded_token = JWT.encode(data,jwt_hmac_secret,jwt_algorithm)
|
18
|
+
response.set_header(header_name, encoded_token)
|
19
|
+
end
|
20
|
+
|
21
|
+
def authenticate_user?
|
22
|
+
if is_valid_token?
|
23
|
+
return true
|
24
|
+
else
|
25
|
+
render json: {"error" => "User Authentication Failed", :status => 401}, :status => 401 and return
|
7
26
|
end
|
27
|
+
end
|
8
28
|
|
29
|
+
def current_user
|
30
|
+
@_current_user ||= OpenStruct.new(@decoded_token) if is_valid_token?
|
9
31
|
end
|
32
|
+
|
33
|
+
def is_valid_token?
|
34
|
+
begin
|
35
|
+
token = request.headers[header_name]
|
36
|
+
@decoded_token = JSON.parse(JWT.decode(token, jwt_hmac_secret, true, { :algorithm => jwt_algorithm })[0])
|
37
|
+
return validate_keys
|
38
|
+
rescue Exception => e
|
39
|
+
return false
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def validate_keys
|
44
|
+
!!@_validate_keys ||= (@decoded_token.keys && ["id", "email"]).any?
|
45
|
+
end
|