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.
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