Domanda

Qualcuno è a conoscenza di gemme, tutorial o soluzioni che consentono a un utente di accedere a un sito Web in un dominio e di avere automaticamente accesso ad altri domini partner nella stessa sessione?

Ho due app in esecuzione, chiamiamole App-A e App-B. App-A ha un database ad esso associato, che alimenta la registrazione e il login su App-A.com. Vorrei ora dare a tutti quegli utenti con account App-A.com l'accesso ad App-B.com, senza doverli registrare nuovamente o accedere manualmente ad App-B.com separatamente.

Grazie in anticipo per qualsiasi aiuto! --Mark

È stato utile?

Soluzione

Puoi impostare lo stesso session_key in entrambe le app. In appA environment.rb cambia session_key, in questo modo

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

Fai lo stesso in AppB. (ricorda di usare lo stesso segreto)

Ora hai sessioni condivise. Supponiamo che tu usi restfull_authentication, che imposta una variabile di sessione chiamata user_id . Quando esegui l'autenticazione in appA, imposta user_id nella sessione. Ora, in appB devi solo verificare se user_id esiste nella sessione.

Questo è lo schema generale, puoi elaborarne di più usando questa idea.

Altri suggerimenti

Se desideri creare una soluzione Single Sign-On per le tue applicazioni, ti consiglio di dare un'occhiata a RubyCAS soluzione. Potrebbe essere utilizzato anche per fornire Single Sign-On per altre applicazioni non Rails e per integrare l'autenticazione con LDAP o altri provider di autenticazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top