Authentification Rails 3: Authlogic vs Devise

J'ai toujours utilisé Authlogic dans Rails 2.3 mais maintenant que J'utilise Rails 3, je pense que je pourrais essayer une nouvelle solution d'authentification.

Comment Devise se compare-t-il à Authlogic? Quelles sont leurs différences?

42
demandé sur amaseuk 2010-11-09 19:38:45

6 réponses

Je les ai utilisés tous les deux, mais pas intensivement. Dans mon dernier projet, J'ai donné un coup de feu à Devise. J'ai fini par utiliser Rails-Warden à la place.

  • Devise est un framework d'authentification complet construit sur Warden. Pour personnaliser son apparence, vous utilisez des générateurs, puis modifiez les vues résultantes. Ses routes et la logique de vue sont codées en dur. Par exemple, une connexion réussie vous amènera toujours à / session / new? C'était un dealbreaker ou moi, je voulais que mes utilisateurs finissent sur "welcome / index". Concevoir n'est pas aussi bien documenté, ou intuitif comme authlogic.

  • Warden est un framework middleware sur lequel est basé le Devise. Il a des plugins pour de nombreux schémas d'authentification web (FB, openid, oauth), et il est facile de construire un plugin pour votre propre back-end d'authentification. Il est livré avec aucune interface utilisateur, et les documents ne sont pas aussi bons que authlogic.

  • j'ai fini par utiliser rails-warden parce que j'avais besoin de greffer plusieurs schémas d'authentification personnalisés.

  • aussi, voir la réponse OmniAuth ci-dessous, c'est ce que je suis en utilisant en 2012.
  • 31
    répondu Aleksandar Totic 2012-05-07 05:25:52

    Pour devise, si vous voulez envoyer une connexion réussie à "welcome / index", vous ajoutez aux routes.rb

    namespace :user do
        root :to => "welcome#index"
    end
    

    Tel Que documenté https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

    Personnellement, j'aime concevoir. il pense que c'est génial et je suppose que vous pouvez l'appeler "opiniâtre", mais ces opinions peuvent être facilement écrasées.

    31
    répondu twmulloy 2015-02-13 20:51:06

    J'ai trouvé Devise trop opiniâtre pour moi. Si vous voulez juste accepter la façon dont il fait des choses hors de la boîte, il est bon et facile à aller de l'avant. J'avais des exigences spécifiques et je me suis retrouvé à écrire des choses pour contourner le problème, donc j'ai fini par l'extraire et mettre à jour Authlogic vers Rails3 à la place.

    11
    répondu james2m 2010-12-09 23:26:13

    Comme le questionneur original, moi aussi j'avais toujours utilisé AuthLogic dans les Rails 2.3 jours mais j'ai fait le choix d'utiliser Devise quand AuthLogic n'était pas prêt pour Rails 3.1 (quand il était au stade RC). Dans l'ensemble, J'ai fait faire ce que je veux, Mais je suis malheureux et j'aimerais ne pas avoir fait le changement.

    L'authentification de L'Utilisateur semble simple à la surface et une chose idéale pour "componentize" , mais tant de fois vous voulez laisser un utilisateur s'engager pleinement avec votre site avant d'exiger la connexion et concevoir des marques - ce plus difficile.

    Oui des fonctionnalités comme mettre after_sign_in_path_for / after_sign_up_path_for dans le travail du contrôleur D'Application, mais ces fonctions sont vraiment destinées à ne rien faire de plus que de retourner un chemin et si vous utilisez Devise, vous vous retrouverez à y coller de gros blocs de code. Cela fonctionne, mais avoir votre propre contrôleur d'utilisateurs pour gérer les actions liées à l'utilisateur est, pour moi, plus élégant.

    10
    répondu fuzzygroup 2011-10-13 14:27:56

    Si vous avez besoin de plusieurs authentification OAuth sur Twitter, Facebook, LinkedIn et Google, vous pouvez utiliser la gemme OmniAuth avec Authlogic. Facile à comprendre et vous donne un contrôle complet sur ce qui se passe lorsque les utilisateurs s'authentifient à partir de différents sites sociaux, ce que vous faites dans authorizations_controller.RB.

    7
    répondu Adrien Lamothe 2011-07-18 23:29:29

    J'aime concevoir. Vous pouvez également utiliser OmniAuth avec Devise. Je pense que le projet Devise est très actif, et il a un grand soutien sur internet.

    3
    répondu Leandro Andrade 2012-03-29 13:25:24