2014-02-09 1 views
0

이니셜 라이저에서 새로운 스레드에서 레일 서버를 시작합니다. 쿠키는 분명히 정상적인 소켓 메시지로 보내지지 않습니다. 메시지 기반으로 인증을 수행하기 위해 세션을 내부적으로 소켓에 바인드하고 싶습니다. session_id를 명시 적으로 전송하는 것은 나에게는 문제가되지 않지만 아직 ID를 통해 세션을 검색하는 방법을 찾지 못했습니다. 그게 가능한가? 여기HTTP와 WebSocket 서버간에 세션을 공유합니까? (alt. id에 의한 세션 찾기)

답변

0

나는 이동 :

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/

이 방법.

관련 문제