secure_jwt 0.1.0 → 0.1.0.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/CHANGELOG.md +1 -0
- data/lib/secure_jwt.rb +8 -6
- data/lib/secure_jwt/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdf389d943c937effdd17264e0893d81c57f87c23f6ab8a542c84f01cad0a4f9
|
4
|
+
data.tar.gz: 076c0e9a2ab9c99588d5748bcaed375f1e9e8d9de439e323ee003523dc631f86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '05538a81d2eaa04d17191e58afd3fe70da54b8ad536da00aafb3cc648be328e0174bfbf1d07ede69a89065973ffa8c7b77aab18ace67293420c7c5ef6dd5b1d9'
|
7
|
+
data.tar.gz: 9d5b0dc4da51191a6f84b27a0ca86d0e410f8df80d5918dbf08e3b89793ecb746ea35d0b3622bc0c67f9818977c07657c01abec90b09b6d4af205041f9e10710
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2021-03-25: (0.1.0.1) - Added expiration
|
data/lib/secure_jwt.rb
CHANGED
@@ -53,7 +53,8 @@ module SecureJwt
|
|
53
53
|
ret = encode_jwt encrypted_payload, {
|
54
54
|
data_key: data_key[:encrypted],
|
55
55
|
iv: iv,
|
56
|
-
auth_tag: auth_tag
|
56
|
+
auth_tag: auth_tag,
|
57
|
+
expires: options[:expires]&.to_i
|
57
58
|
}
|
58
59
|
|
59
60
|
first_error ? raise(first_error) : ret
|
@@ -98,24 +99,25 @@ module SecureJwt
|
|
98
99
|
headers[:tag] = Base64.urlsafe_encode64(options[:auth_tag]) if options[:auth_tag]
|
99
100
|
|
100
101
|
formatted_payload = {
|
101
|
-
"
|
102
|
-
|
102
|
+
"data" => Base64.urlsafe_encode64(encrypted_payload),
|
103
|
+
"exp" => options[:expires]
|
104
|
+
}.compact
|
103
105
|
|
104
106
|
JWT.encode formatted_payload, signing_key, jwt_algorithm, headers
|
105
107
|
end
|
106
108
|
|
107
109
|
def decode_jwt(jwt_token)
|
108
110
|
begin
|
109
|
-
payload, header = JWT.decode jwt_token, signing_key, !!jwt_algorithm, algorithm: jwt_algorithm
|
111
|
+
payload, header = JWT.decode jwt_token, signing_key, !!jwt_algorithm, algorithm: jwt_algorithm, verify_expiration: true
|
110
112
|
|
111
113
|
%w(data_key iv tag).each do |key|
|
112
114
|
header[key] = Base64.urlsafe_decode64 header[key] rescue ""
|
113
115
|
end
|
114
116
|
|
115
|
-
return Base64.urlsafe_decode64(payload["
|
117
|
+
return Base64.urlsafe_decode64(payload["data"]), header.transform_keys(&:to_sym)
|
116
118
|
rescue JWT::VerificationError, JWT::IncorrectAlgorithm => e
|
117
119
|
self.first_error = e
|
118
|
-
return {"
|
120
|
+
return {"data": nil}, { }
|
119
121
|
end
|
120
122
|
end
|
121
123
|
|
data/lib/secure_jwt/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: secure_jwt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0
|
4
|
+
version: 0.1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Linder
|
@@ -61,6 +61,7 @@ extensions: []
|
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
63
|
- ".gitignore"
|
64
|
+
- CHANGELOG.md
|
64
65
|
- CODE_OF_CONDUCT.md
|
65
66
|
- Gemfile
|
66
67
|
- Gemfile.lock
|