jwt_auth_token 1.0.2 → 1.0.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jwt_auth_token.rb +41 -5
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b7ae25c7d64620268228e566382612740efb185
4
- data.tar.gz: 22bba0d364c106c0cec9c8ef9007588aa4b59df4
3
+ metadata.gz: d9bf140cdd2ae6a402ad29ec5eb50a91c3d3e047
4
+ data.tar.gz: bfb436491494f03e3bf54182b8f873ff5e09fac9
5
5
  SHA512:
6
- metadata.gz: dbb51e26279c27522edffb8d13cb729b676c6609406166bcb6154997cdfd1823285c0143a85b07e31072cc6ee31a321c790bf88e84cbad3d1c9900c0339e43b1
7
- data.tar.gz: 2a536965702cbbe5000dd7cb5aae02ff64a1223cb8ebea1abfafbaf651b9284133ed741d0c35e793416419a8bdff65d396eeaf1278745cdc686b2e1580d70736
6
+ metadata.gz: 2b9a87d580d5e3ccc86841864fb6e9abf1f5c4e6f07460578c4ace581ec7ee4a7ed8e2a7010022c17b6b5694c3724d5c6307ba77d9602bc2aedfd9d1bbe0df77
7
+ data.tar.gz: 4c53a29f598ecd2710f37a80a895e15e2b0fb6f8b93e20f7eaa21fc7bd911fea8487ef4f6624bea29ac0dca3119572e9f2f58107a6523ffa149476cd49ddd59f
@@ -1,9 +1,45 @@
1
- class JwtAuthToken
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
- def self.set_header(response, data)
4
- hmac_secret = Rails.application.secrets[:secret_key_base]
5
- payload_data = JWT.encode(data,hmac_secret,'HS512')
6
- response.set_header("embibe-token", payload_data)
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jwt_auth_token
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Afzal Lakdawala