gy 0.0.1 → 0.0.2
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/lib/gy/session.rb +40 -0
- data/lib/gy.rb +4 -0
- metadata +3 -2
- data/lib/gy_session.rb +0 -38
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 48f03e1f220205d56f90247f13131ff97ca2c0595dab500468cd44be35d84ece
|
|
4
|
+
data.tar.gz: 92af00af81a22cee08f90011f1954bb2b9be9bff40eab99d2a0a5e43574c71bd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 56ed9d765f1ac60cabc506283c4ce348d4b19839506577af5af0798012d7472ea1f1f9e08e3b79c5a9d258020f5c5003f58da64cad296a5e7649a06992ea0349
|
|
7
|
+
data.tar.gz: edd974578ed998fd542398a90f861a77c59627903b69e0bac79da15764dac0e982653183965226f37b61ed4825b3e228b035991ad00e9b5306bd907601604571
|
data/lib/gy/session.rb
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Gy
|
|
2
|
+
class Session
|
|
3
|
+
# 页面上的cookie解密成session数据
|
|
4
|
+
def self.decrypt_cookie(cookie_string, mode = 'json')
|
|
5
|
+
serializer = case mode
|
|
6
|
+
when 'json' then JSON
|
|
7
|
+
when 'marshal' then ActiveSupport::MessageEncryptor::NullSerializer
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
cookie = CGI::unescape(cookie_string.strip)
|
|
11
|
+
salt = Rails.configuration.action_dispatch.encrypted_cookie_salt
|
|
12
|
+
signed_salt = Rails.configuration.action_dispatch.encrypted_signed_cookie_salt
|
|
13
|
+
key_generator = ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base, iterations: 1000)
|
|
14
|
+
secret = key_generator.generate_key(salt)[0, 32]
|
|
15
|
+
sign_secret = key_generator.generate_key(signed_salt)
|
|
16
|
+
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret, serializer: serializer)
|
|
17
|
+
result = encryptor.decrypt_and_verify(cookie)
|
|
18
|
+
|
|
19
|
+
(mode == 'marshal') ? Marshal.load(result) : result
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# session加密成cookie
|
|
23
|
+
def self.encrypt_to_cookie(session_json, mode = 'json')
|
|
24
|
+
serializer = case mode
|
|
25
|
+
when 'json' then JSON
|
|
26
|
+
when 'marshal' then ActiveSupport::MessageEncryptor::NullSerializer
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
salt = Rails.configuration.action_dispatch.encrypted_cookie_salt
|
|
30
|
+
signed_salt = Rails.configuration.action_dispatch.encrypted_signed_cookie_salt
|
|
31
|
+
key_generator = ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base, iterations: 1000)
|
|
32
|
+
secret = key_generator.generate_key(salt)[0, 32]
|
|
33
|
+
sign_secret = key_generator.generate_key(signed_salt)
|
|
34
|
+
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret, serializer: serializer)
|
|
35
|
+
result = encryptor.encrypt_and_sign(session_json)
|
|
36
|
+
|
|
37
|
+
result
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
data/lib/gy.rb
ADDED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- gy
|
|
@@ -16,7 +16,8 @@ executables: []
|
|
|
16
16
|
extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
|
18
18
|
files:
|
|
19
|
-
- lib/
|
|
19
|
+
- lib/gy.rb
|
|
20
|
+
- lib/gy/session.rb
|
|
20
21
|
homepage: https://rubygems.org/gems/gy
|
|
21
22
|
licenses:
|
|
22
23
|
- MIT
|
data/lib/gy_session.rb
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
class GySession
|
|
2
|
-
# 页面上的cookie解密成session数据
|
|
3
|
-
def self.decrypt_cookie(cookie_string, mode = 'json')
|
|
4
|
-
serializer = case mode
|
|
5
|
-
when 'json' then JSON
|
|
6
|
-
when 'marshal' then ActiveSupport::MessageEncryptor::NullSerializer
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
cookie = CGI::unescape(cookie_string.strip)
|
|
10
|
-
salt = Rails.configuration.action_dispatch.encrypted_cookie_salt
|
|
11
|
-
signed_salt = Rails.configuration.action_dispatch.encrypted_signed_cookie_salt
|
|
12
|
-
key_generator = ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base, iterations: 1000)
|
|
13
|
-
secret = key_generator.generate_key(salt)[0, 32]
|
|
14
|
-
sign_secret = key_generator.generate_key(signed_salt)
|
|
15
|
-
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret, serializer: serializer)
|
|
16
|
-
result = encryptor.decrypt_and_verify(cookie)
|
|
17
|
-
|
|
18
|
-
(mode == 'marshal') ? Marshal.load(result) : result
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# session加密成cookie
|
|
22
|
-
def self.encrypt_to_cookie(session_json, mode = 'json')
|
|
23
|
-
serializer = case mode
|
|
24
|
-
when 'json' then JSON
|
|
25
|
-
when 'marshal' then ActiveSupport::MessageEncryptor::NullSerializer
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
salt = Rails.configuration.action_dispatch.encrypted_cookie_salt
|
|
29
|
-
signed_salt = Rails.configuration.action_dispatch.encrypted_signed_cookie_salt
|
|
30
|
-
key_generator = ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base, iterations: 1000)
|
|
31
|
-
secret = key_generator.generate_key(salt)[0, 32]
|
|
32
|
-
sign_secret = key_generator.generate_key(signed_salt)
|
|
33
|
-
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret, serializer: serializer)
|
|
34
|
-
result = encryptor.encrypt_and_sign(session_json)
|
|
35
|
-
|
|
36
|
-
result
|
|
37
|
-
end
|
|
38
|
-
end
|