2009-08-18 27 views
10

In che modo consentire a un utente di accedere con più account openid e facoltativamente una password, utilizzando authlogic?OpenID Authlogic con identificativi openID multipli per account

+0

+1, mi piacerebbe vedere un esempio di questo. Ben (autore di Authlogic) menzionato qui è una linea di configurazione ma non so quale linea. Vedi qui: http://bit.ly/2Bu9D – ryanb

+0

@ryanb, dubito che questo sia configurabile, ma spero davvero di essere dimostrato errato, l'intera implementazione sembra fare affidamento sulle modifiche alla tabella utente invece di avere un has_many ad un tavolo dell'URL aperto. –

risposta

0

Non conosco una configurazione a una riga per eseguire questa operazione, ma find_by_login_method ti fornirà la prima parte dell'utilizzo di più openID. Per quanto riguarda la password opzionale, probabilmente dovrai fare un controllo con verify_password_method per determinare quando è necessaria la password.

+0

Come funziona esattamente? Act_as_authentic funziona ancora nel modello User? L'identificatore openid è utilizzato solo nel metodo find_by_login in Authlogic, quindi funzionerà per averlo in una tabella separata? – ryanb

+0

Anche per quanto riguarda le convalide? Credo che Authlogic aggiunga convalide all'attributo openid_identifier, c'è un buon modo per ignorarli in User e applicarli nel modello separato? – ryanb

1

Sembra che se si imposta la find_by_openid_method, è possibile fare riferimento qualsiasi cosa: http://authlogic-oid.rubyforge.org/

Dalla documentazione:

class User < ActiveRecord::Base 
    def self.find_by_openid_identifier(identifier) 
    user.first(:conditions => {:openid_identifiers => {:identifier => identifier}}) 
    end 
end 
+0

Grazie. Conoscete qualche modulo da includere nel modello OpenidIdentifier in modo che riporti alcune delle funzionalità? Come le convalide e l'auto-correzione dell'URL openid. – ryanb

+0

Indovinare qui, ma incluso AuthlogicOpenid :: ActsAsAuthentic sembra un buon candidato per quella funzionalità. – stonean

+0

Il problema con il finder è che potrebbe essere necessario agire in base ai dati restituiti dal provider openid come i campi ax o sreg, quindi è necessario connettersi anche quando tali informazioni ritornano in modo da poter popolare un modello. Inoltre, non vuoi memorizzare il tuo identificatore openid nella tua tabella utente. –