Понимание идентификатора веб-сессии WRT rails
Я работаю над тем, как переносить сеансы между приложением Rails и приложением Kemal. Сейчас я могу сделать это вручную, но есть библиотека для kemal, которая позволяет расширить способы обработки сессий. Я начал это здесь.
Мой вопрос заключается в том, что, когда я дешифрую значение cookie сеанса из rails, я получаю хеш, который содержит session_id
ключ с некоторым значением, как 0cc175b9c0f1b6a831c399e269772661
, Как это session_id
генерируется? Когда я добавлю сюда движок, это будет тот же session_id, который мне нужно будет обойти? Или все значение cookie сеанса будет считаться идентификатором?
Вот пример того, как это расшифровывается в рельсах:
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
РЕДАКТИРОВАТЬ (для пояснения): в настоящее время у меня есть 2 приложения рельсы, которые разделяют сессию между ними. Моя цель - заменить одно из приложений rails приложением kemal. В настоящее время у меня это работает от рельсов -> Kemal, но собирается Kemal -> рельсы не работает.
Как рельсы генерируют это session_id
значение? Должен ли я генерировать это значение в kemal таким же образом?