2009-09-16 6 views
3

J'essaie d'activer l'authentification openid sur mon site Web et d'utiliser la fonctionnalité auto_register du dernier module d'authentification authlogic_openid. Tout fonctionne bien jusqu'à la deuxième connexion.authlogic openid fonction auto_register essaie de dupliquer l'enregistrement

La première fois que l'utilisateur est créé et connecté, mais après la déconnexion et essayer de se connecter au système avec le même identificateur OpenID, je reçois un formulaire d'inscription avec des erreurs indiquant que le nom d'utilisateur et les autres champs sont déjà remplis. données passées avec openid.

Tout est mis en œuvre par authlogic/authlogic tutoriel Openid sauf pour le modèle de session utilisateur avec nouvel appel auto_register:

class UserSession < Authlogic::Session::Base 
    auto_register 
end 

Toute aide très appréciée!

Répondre

1

Il semble que vous enregistrez deux fois les utilisateurs. Le plugin OpenID ne sait pas si un utilisateur a été enregistré ou non, il ne fait que SREG à chaque fois si auto_register est vrai. Plutôt que d'appeler auto_register chaque fois que vous pourriez rechercher l'utilisateur par openid_identifier et envoyer auto_register(true) s'il s'agit d'un nouvel utilisateur.

+0

je vais certainement essayer cette approche! – Eimantas