2011-03-05 2 views
5

J'utilise Rails 3 et Devise pour l'authentification. J'ai un bon plan de travail pour le site Web et l'authentification de base pour API (gestionnaire json). Comment activer l'authentification Digest?Authentification Digest dans Devise

Leur Wiki me dit d'ajouter

def http_authenticate 
    authenticate_or_request_with_http_digest do |user_name, password| 
    user_name == "foo" && password == "bar" 
    end 
    warden.custom_failure! if performed? 
end 

Où puis-je ajouter à et comment puis-je faire correspondre user_name/mot de passe?

Répondre

1

Cette entrée wiki suppose beaucoup de choses.

Ma meilleure estimation est que vous devez l'ajouter au contrôleur approprié (ou au contrôleur d'application si vous le voulez pour tout).

Et puis ajoutez un: before_filter: http_authenticate! Vous pouvez également essayer de retrouver la personne qui a écrit cette page wiki et de lui demander.

Remarque. Cela dépend de Warden pour effectuer votre authentification - Devise ne gère que les comptes. L'une des raisons pour lesquelles ce genre de choses n'est pas documenté est que la plupart des gens utilisent un système de gestion d'authentification sophistiqué (par exemple OmniAuth), et quelque chose d'autre pour les autorisations/autorisations, par exemple. DeclarativeAuthorization ou CanCan si vous préférez quelque chose de plus léger. HTTPBasic (et je suppose que Digest) a tendance à ne pas jouer correctement avec ceux-ci.

+0

Eh bien, cela ressemble à un walk-around, mais je suppose que penser/awarden devrait gérer l'authentification de base/digest pour moi. Ce n'est vraiment pas ma logique d'application et doit être pris en charge par les gemmes/rack. – Zepplock

Questions connexes