2009-11-17 2 views
4

L'enregistrement automatique fonctionne avec authlogic en utilisant la version de authlogic_openid de gaizka que j'ai trouvée sur Github car l'ajout original de cette fonctionnalité par pelle semblait causer des problèmes.Fonction auto_register authlogic utilisant mes options

http://github.com/gaizka/authlogic_openid

using authlogic to auto create users bypassing explicit user registeration

Celui-ci fonctionne très bien mais lorsque vous utilisez la fonction auto_register il ignore mes options pour authlogic telles que la récupération de l'e-mail du fournisseur OpenID ... toutes les idées que je fais mal ?

Hhere de l'exemple:

http://big-glow-mama.heroku.com/

http://github.com/holden/authlogic_openid_selector_example/tree/with-facebook/

Vous pouvez voir la différence si vous vous inscrivez par rapport à connexion ...

#user.rb 
class User < ActiveRecord::Base 
    acts_as_authentic do |c| 
    c.validate_login_field = false 
    # optional, but if a user registers by openid, he should at least share his email-address with the app 
    c.validate_email_field = false 
    # fetch email by ax 
    c.openid_required_fields = [:email,"http://axschema.org/contact/email"] 
    #c.required_fields = ["http://axschema.org/contact/email"] 
    # fetch email by sreg 
    #c.optional_fields = ["email"] 
    end 

    #private method to deal with emails goes here 

end 


#UserSession.rb 
class UserSession < Authlogic::Session::Base 
    auto_register 
    logout_on_timeout true 
end 

Répondre

4

Celui-ci fonctionne très bien cependant lors de l'utilisation de la fonction auto_register, il ignore mes options pour authlogic tel s récupérer l'email du fournisseur openid ... des idées que je fais mal?

Le code qui gère l'enregistrement automatique réside dans le module Session d'authlogic_openid. Le code qui gère l'enregistrement (récupération du fournisseur de formulaire de courrier électronique, etc), vit dans le module ActsAsAuthentic.

Le premier traite un objet UserSession, ce dernier traite un objet User.

Je vais jeter un oeil dans quelques jours, pour voir ce qui peut être fait pour fusionner les deux comportements.

+1

Pouvez-vous trouver un moyen de fusionner les comportements? –

Questions connexes