了解Web会话ID WRT rails

时间:2017-04-29 16:59:33

标签: ruby-on-rails session-cookies crystal-lang kemal

我正致力于在Rails应用和Kemal应用之间进行会话。我现在可以手动执行此操作,但是这个library for kemal允许扩展会话的处理方式。我已经开始here了。

我的问题是,当我从rails解密会话cookie值时,我给出了一个包含session_id键的哈希值,其值为0cc175b9c0f1b6a831c399e269772661。这个session_id是如何产生的?当我扩展引擎here时,这将是我需要传递的session_id吗?或者将整个会话cookie值视为" id"?

以下是有关如何在rails中解密的示例:

secret_key_base = "a0aaa0a00a000a00a0a0aa00a0aa000a000aa0a0a0a0a0000a0000a00aaa00000000aa0aa00000000a00000a000a000000a00aaa0a0000000a0000a0a0aaa000"
key_generator = ActiveSupport::CachingKeyGenerator.new(ActiveSupport::KeyGenerator.new(secret_key_base, iterations: 1000))
secret = key_generator.generate_key("encrypted cookie")
sign_secret = key_generator.generate_key("signed encrypted cookie")
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret, serializer: JSON)
hash = encryptor.decrypt_and_verify("SOME_REALLY_LONG_STRING")
puts hash["session_id"] #=> 0cc175b9c0f1b6a831c399e269772661

编辑(澄清):我目前有两个在他们之间共享会话的rails应用程序。我的目标是用kemal应用程序替换其中一个rails应用程序。我目前有这个工作从rails - >凯马尔,但去凯马尔 - >导轨不起作用。

rails如何生成session_id值?我应该以同样的方式在凯马尔生成这个值吗?

0 个答案:

没有答案