2009-08-18 13 views
10

¿Cómo haría para permitir que un usuario inicie sesión con múltiples cuentas abiertas y opcionalmente una contraseña, utilizando authlogic?Autónomo openid con múltiples identificadores de apertura por cuenta

+0

+1, me gustaría ver un ejemplo de esto también. Ben (autor de Authlogic) mencionado aquí es una línea de configuración, pero no sé qué línea. Vea aquí: http://bit.ly/2Bu9D – ryanb

+0

@ryanb, dudo que esto sea configurable, pero realmente espero que se demuestre que está mal, toda la implementación parece basarse en cambios en la tabla de usuarios en lugar de tener un has_many en un openid url table. –

Respuesta

0

No conozco una configuración de una línea para lograr esto, pero find_by_login_method le proporcionará la primera parte de la utilización de múltiples valores abiertos. En cuanto a la contraseña opcional, es probable que deba verificar con verify_password_method para determinar cuándo se necesita esa contraseña.

+0

¿Cómo funcionaría esto exactamente? Does acts_as_authentic sigue yendo en el modelo de Usuario? ¿El openid_identifier solo se utiliza en el método find_by_login en Authlogic, por lo que funcionará para tenerlo en una tabla separada? – ryanb

+0

¿Qué pasa con las validaciones? Creo que Authlogic agrega validaciones al atributo openid_identifier, ¿hay alguna manera de ignorarlos en User y aplicarlos en el modelo por separado? – ryanb

1

Parece que si se establece la find_by_openid_method, puede hacer referencia a cualquier cosa: http://authlogic-oid.rubyforge.org/

A partir de los documentos:

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

Gracias. ¿Conoces algún módulo para incluir en el modelo OpenidIdentifier para que transfiera parte de la funcionalidad? Como las validaciones y la autocorrección de la url openid. – ryanb

+0

Adivinando aquí, pero incluyendo AuthlogicOpenid :: ActsAsAuthentic parece un buen candidato para esa funcionalidad. – stonean

+0

El problema con el buscador es que es posible que tenga que actuar sobre los datos devueltos por el proveedor de código abierto, como los campos ax o sreg, por lo que también debe conectar cuando esa información regrese para poder completar un modelo. Además, no desea almacenar su identificador de código abierto en su tabla de usuarios. –

Cuestiones relacionadas