web-dev-qa-db-ja.com

Rails 3認証:AuthlogicとDevise

私は常にRails 2.3でAuthlogicを使用していましたが、今はRails= 3を使用しているので、新しい認証ソリューションを試す可能性があると思います。

DeviseとAuthlogicの違いは何ですか?それらの違いは何ですか?

42
amaseuk

私は両方を使用しましたが、広範囲には使用していません。前回のプロジェクトでは、Deviseを試してみました。代わりにRails-Wardenを使用することになりました。

  • Deviseは、Warden上に構築された完全な認証フレームワークです。外観をカスタマイズするには、ジェネレータを使用して、結果のビューを編集します。そのルートとビューロジックはハードコーディングされています。たとえば、ログインが成功すると、常に/ session/new?これは契約解除者または私でした、私はユーザーに「歓迎/索引」になってほしいと思いました。 Deviseは、authlogicほど文書化されておらず、直感的でもありません。
    • WardenはDeviseのベースとなるミドルウェアフレームワークです。多くのWeb認証スキーム(fb、openid、oauth)用のプラグインがあり、独自の認証バックエンド用のプラグインを簡単に構築できます。 UIがなく、ドキュメントはauthlogicほど優れていません。
    • 複数のカスタム認証スキームをプラグインする必要があったため、Rails-wardenを使用することになりました。
    • また、以下のOmniAuthの回答を参照してください。これは、私が2012年に使用しているものです。
  • 31

    工夫のために、「welcome/index」へのログインを成功させたい場合は、routes.rbに追加します

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

    ドキュメントどおり https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

    個人的に、私は工夫が好きです。それは素晴らしいと思うし、私はそれを「意見」と呼ぶことができると思うが、それらの意見は簡単に上書きされる可能性がある。

    31
    twmulloy

    私はデヴィスも私に不満を感じました。箱から出してすぐに物事を行う方法を受け入れるだけの場合は、簡単に始めることができます。私はいくつかの特定の要件を持っていて、Deviseを回避するために物事を書いているのを見つけたので、それを取り除き、代わりにAuthlogicをRails3に更新しました。

    11
    james2m

    元の質問者と同様に、私もRails 2.3日間は常にAuthLogicを使用していましたが、AuthLogicがRails 3.1の準備ができていないときに、Diseを使用することにしました。 (それがRCステージだったとき)全体的に、私はDeviseに自分のやりたいことをさせましたが、私は不満で、変更を加えていなかったらよかったのにと思っています。

    ユーザー認証は表面的にはシンプルに見え、「コンポーネント化」するのに理想的ですが、ログインを要求する前にユーザーがサイトに完全に関与できるようにしたい場合が多く、Deviseはこれを難しくしています。

    はい、after_sign_in_path_for/after_sign_up_path_forをアプリケーションコントローラーの動作に組み込むなどの機能はありますが、これらの関数は実際にはパスを返すだけであり、Deviseを使用している場合は、大きなコードブロックが挿入されることに気付くでしょう。それは機能しますが、ユーザーに関連するアクションを処理するための独自のユーザーコントローラーがあると、私にとってはよりエレガントになります。

    10
    fuzzygroup

    複数のOAuth Twitter、Facebook、LinkedIn、Googleへの認証が必要な場合は、Authlogicと一緒にOmniAuth gemを使用できます。簡単に理解でき、ユーザーが認証するときに発生することを完全に制御できますauthorizations_controller.rbで行うさまざまなソーシャルサイト。

    7
    Adrien Lamothe

    私はDeviseが好きです。 DeviseでもOmniAuthを使用できます。 Deviseプロジェクトは非常に活発で、インターネットで大きな支持を得ていると思います。

    3
    Leandro Andrade