Pergunta

Eu gostaria de ter algum trilhos aplicativos mais servidores diferentes que partilham a mesma sessão. Eu posso fazê-lo dentro do mesmo servidor, mas não sei se é possível compartilhar mais servidores diferentes. Qualquer um que já fez ou sabe como fazê-lo?

Graças

Foi útil?

Solução

Dependendo de como o aplicativo é configurado, você pode facilmente compartilhar cookies de sites no mesmo domínio (foo.domain, bar.domain, domínio), definindo seus aplicativos para usar o mesmo segredo: http://www.russellquinn.com/2008/01/30 / múltiplo-rails-applications /

Agora, se você tem locais díspares, como sdfsf.com, dsfsadfsdafdsaf.com, etc. você vai ter que fazer muito mais truques, porque a própria natureza de cookies restringe-los para o domínio específico. Essencialmente o que você está tentando fazer é usar scripts cross-site para, em vez de hijack sua sessão, lê-lo do que os outros.

Nesse caso, uma combinação de usar o mesmo cookie secreto etc e então alguns cross-site scripting você pode extrair manualmente as informações de sessão e re criar-lo em cada local (ou se você usar sessão ActiveRecord {ou NFS sessão dir }, a ligação com o já existente). Não é fácil, mas pode ser feito.

Ou, o caminho de baixa tecnologia (o que eu fiz antes) é simplesmente ter a visita página de login uma página de login especialmente criado em cada site que define um cookie de aplicativo nele e salta para o próximo um. Não é bonito.

Outras dicas

Use a loja sessão de banco de dados . A curto do que é o seguinte:

Para gerar a tabela, no console, run

rake db:sessions:create

em seu environment.rb, incluir esta linha

config.action_controller.session_store = :active_record_store

Tente usar sessões lastreados em banco de dados.

Em Rails 2.0 agora há uma CookieStore que armazena todos os dados da sessão em um cookie criptografado no computador do cliente.

http://izumi.plan99.net/blog/index.php/2007/11/25/rails-20-cookie-session-store-and-security/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top