Ruby on rails 在HTTP和WebSocket服务器之间共享会话?(可选按id查找会话)
在我的初始化器中,我在一个新线程中启动rails服务器。Cookie显然不是在普通套接字消息中发送的(我得到的)。为了在消息的基础上执行身份验证,我想在内部将会话绑定到套接字。明确传输会话id对我来说不是问题,但我还没有找到通过会话id检索会话的方法。这可能吗?我来看看:Ruby on rails 在HTTP和WebSocket服务器之间共享会话?(可选按id查找会话),ruby-on-rails,session,websocket,session-cookies,Ruby On Rails,Session,Websocket,Session Cookies,在我的初始化器中,我在一个新线程中启动rails服务器。Cookie显然不是在普通套接字消息中发送的(我得到的)。为了在消息的基础上执行身份验证,我想在内部将会话绑定到套接字。明确传输会话id对我来说不是问题,但我还没有找到通过会话id检索会话的方法。这可能吗?我来看看: def decrypt_session_cookie(cookie) cookie = CGI.unescape(cookie) config = Rails.application.config encrypt
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
资料来源:
通过这种方式,我能够解密我刚在初始消息中发送的cookie