Pergunta

Alguém tem conhecimento de quaisquer gemas, tutoriais, ou soluções que permitem que um usuário entrar em um website em um domínio e automaticamente dado acesso a outros domínios de parceiros na mesma sessão?

Eu tenho duas aplicações Rails em execução, vamos chamá-los App-A e App-B. App-A tem um banco de dados associado com ele, alimentando o registro e login no App-A.com. Eu agora gostaria de dar a todos os usuários com App-A.com contas acesso a App-B.com, sem fazê-los reregister ou manualmente de login para App-B.com separadamente.

Agradecemos antecipadamente por qualquer ajuda! --Mark

Foi útil?

Solução

Você pode definir a mesma session_key em ambos os aplicativos. Em Appa environment.rb mudar o session_key, como este

Rails::Initializer.run do |config|
   ...  
 config.action_controller.session = {
   :session_key => '_portal_session',
   :secret      => '72bf006c18d459acf51836d2aea01e0afd0388f860fe4b07a9a57dedd25c631749ba9b65083a85af38bd539cc810e81f559e76d6426c5e77b6064f42e14f7415'
  }
  ...
end

Faça o mesmo em AppB. (Lembre-se de usar o mesmo segredo)

sessões Agora você tem compartilhado. Digamos que você use restfull_authentication, wich define uma variável de sessão chamado user_id . Quando você autenticar no Appa ele define o user_id na sessão. Agora, em AppB você só tem que verificar se user_id existe na sessão.

Este é o esquema geral, você pode elaborar mais usando essa idéia.

Outras dicas

Se você quiser criar single sign-on solução para as suas aplicações, em seguida, eu recomendo dar uma olhada em RubyCAS solução. Pode ser usado também para fornecer single sign-on para outros não-Rails aplicações, assim como você pode integrar a autenticação com o LDAP ou outros provedores de autenticação.

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