2009-12-31 8 views

Répondre

0

j'ai réussi à faire cela avec Open ID (même idée, mot de passe ne sont pas stockées par mon application) de ne pas avoir une colonne de mot de passe dans la table users et en utilisant cette configuration pour Authlogic:

class User < ActiveRecord::Base 
    acts_as_authentic do |c| 
    c.crypted_password_field = false 
    end 
end 

Sans réglage crypted_password_field , il y avait des erreurs générées lors des sauvegardes de l'utilisateur.

+0

J'ai essayé mais ça n'a pas marché pour moi. Avant cela, j'ai utilisé authlogic-openid gem pour créer un login qui ne nécessite pas de mot de passe. Je me suis référé à ce screencast: http://railscasts.com/episodes/160-authlogic – chetu

+0

Qu'est-ce qui n'a pas fonctionné? Y a-t-il eu des erreurs générées? –

+0

Il est toujours dit "Le mot de passe ne peut pas être vide" même si je n'ai pas fourni de champ de mot de passe sur l'interface utilisateur. – chetu

1

Dans votre modèle d'utilisateur où vous appelez acts_as_authentic, ce pourrait faire l'affaire:

acts_as_authentic do |config| 
    config.require_password_confirmation = false 
    config.ignore_blank_passwords = true 
end 

Ces options de configuration, entre autres, se trouvent dans lib/authlogic/acts_as_authentic/password.rb (en version 2.1.3).

+0

J'ai essayé cela aussi mais je n'ai pas travaillé. J'ai regardé dans le code source pour authlogic et il semble que le modèle UserSession nécessite toujours un mot de passe lorsqu'il essaie de le sauvegarder. – chetu

2

Je pense que vous pouvez le faire comme ceci:

class User < ActiveRecord::Base 
    acts_as_authentic do |config| 
    config.validate_password_field = false 
    end 
end 
1

J'ai eu le même problème avec l'addon authlogic_ldap que je modifié pour mon application. Je fais l'erreur d'inclure login_field :ldap_login dans la classe User. J'ai également eu une erreur stack level too deep initialement, mais je suis revenu à la version 3.0.3 d'authlogic à v3.0.2 et cela fonctionne maintenant.

Questions connexes