ruby_magic_link 1.0.1 → 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/README.md +1 -0
- data/lib/ruby_magic_link/token.rb +7 -3
- data/lib/ruby_magic_link/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: 7284911f3d486464ceb21718d970f009fbd5a881a88056fd38e6285faaaa39fc
|
4
|
+
data.tar.gz: cc11dddfe2d53314106cba1e795854a6f1211e8455245940afcdc48a6287f129
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aebf8ba72618445d8f944006d72b8178046918fce19a3dfe584d35fed2f8ac94d8fccf84edce51116db916c3202c40c2783b49e101d72f27d29b36c2f2f3bd73
|
7
|
+
data.tar.gz: 9c5ca58171f91e22d231b313e399b4799e613a6558168b5b80656dbc4e68884d73ab274fcbe5fea98e9922a8d45c035c3906209ed03dbb8156e14399b50ed07d
|
data/README.md
CHANGED
@@ -13,7 +13,11 @@ module RubyMagicLink
|
|
13
13
|
|
14
14
|
def create(payload, expires_in: nil)
|
15
15
|
data = { payload: payload }
|
16
|
-
|
16
|
+
if expires_in
|
17
|
+
raise(StandardError, '`expires_at` must be an Integer') unless expires_in.is_a? Integer
|
18
|
+
|
19
|
+
data[:expires_in] = Time.now.to_i + expires_in
|
20
|
+
end
|
17
21
|
iv = OpenSSL::Random.random_bytes(16)
|
18
22
|
encrypted_data = encrypt(JSON.generate(data), RubyMagicLink.config.secret_key, iv)
|
19
23
|
Base64.urlsafe_encode64(Base64.urlsafe_encode64(iv) + DELIMITER + encrypted_data)
|
@@ -23,8 +27,8 @@ module RubyMagicLink
|
|
23
27
|
RubyMagicLink::TokenObject.new(data)
|
24
28
|
end
|
25
29
|
|
26
|
-
def decode_token(
|
27
|
-
raw_iv, data = Base64.urlsafe_decode64(
|
30
|
+
def decode_token(token)
|
31
|
+
raw_iv, data = Base64.urlsafe_decode64(token).split(DELIMITER, 2)
|
28
32
|
JSON.parse(decrypt(data, RubyMagicLink.config.secret_key, Base64.urlsafe_decode64(raw_iv)))
|
29
33
|
end
|
30
34
|
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_magic_link
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Korepanov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Magic links for ruby web applications
|
14
|
-
email:
|
14
|
+
email: korepanovigor87@gmail.com
|
15
15
|
executables: []
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|