在 HTTP 和 WebSocket 服务器之间共享会话? (alt. 按 id 查找会话)
Posted
技术标签:
【中文标题】在 HTTP 和 WebSocket 服务器之间共享会话? (alt. 按 id 查找会话)【英文标题】:Share sessions between HTTP and WebSocket server? (alt. find session by id) 【发布时间】:2014-02-09 19:25:42 【问题描述】:在我的初始化程序中,我在一个新线程中启动了一个 Rails 服务器。 Cookie 显然不是在正常的套接字消息中发送的(我得到了)。为了基于消息执行身份验证,我想在内部将会话绑定到套接字。显式传输 session_id 对我来说不是问题,但我还没有找到通过它的 ID 检索会话的方法。这可能吗?
【问题讨论】:
【参考方案1】:我去:
def decrypt_session_cookie(cookie)
cookie = CGI.unescape(cookie)
config = Rails.application.config
encrypted_cookie_salt = config.action_dispatch.encrypted_cookie_salt # "encrypted cookie" by default
encrypted_signed_cookie_salt = config.action_dispatch.encrypted_signed_cookie_salt # "signed encrypted cookie" by default
key_generator = ActiveSupport::KeyGenerator.new(config.secret_key_base, iterations: 1000)
secret = key_generator.generate_key(encrypted_cookie_salt)
sign_secret = key_generator.generate_key(encrypted_signed_cookie_salt)
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret)
encryptor.decrypt_and_verify(cookie)
end
来源:http://big-elephants.com/2014-01/handling-rails-4-sessions-with-go/
这样我就能够解密我刚刚在初始消息中发送的 cookie。
【讨论】:
以上是关于在 HTTP 和 WebSocket 服务器之间共享会话? (alt. 按 id 查找会话)的主要内容,如果未能解决你的问题,请参考以下文章