Ruby onRailsでの認証に最適なソリューション[クローズ]


84

RoRアプリケーションで使用できるビルド済みのソリューションを探しています。理想的には、電子メールの検証、サインアップコントロールを提供し、ユーザーがパスワードをリセットできるASP.NETフォーム認証に似たものを探しています。そうそう、現在アプリケーションにログインしているユーザーを簡単にプルできます。

私はすでに書かれた作品を調べ始めましたが、それは本当に混乱していることがわかりました。LoginGenerator、RestfulAuthentication、SaltedLoginGeneratorを見てきましたが、優れたチュートリアルがある場所やそれらの比較を提供する場所は1つもないようです。まだ発見していないサイトがある場合、またはほとんどの人が使用しているデファクトスタンダードがある場合は、助けていただければ幸いです。

回答:


83

AuthLogicはブロックの新しい子供であるように見え、restful_authenticationの次の進化であり、使いやすいなどのようです。

http://github.com/binarylogic/authlogic/tree/master

編集:Rails 3がリリースされたので、Deviseはブロックの新しい新しい子供であるようです

https://github.com/plataformatec/devise またはhas_secure_password、Railsに組み込まれているhttp://railscasts.com/episodes/250-authentication-from-scratch-revisedを使用して、独自の認証をロールしています

補足:Ruby Toolboxは、さまざまなカテゴリ(GitHubウォッチャーの数に基づく)で現在の最良のソリューションを見つけるための優れたサイトです。

http://ruby-toolbox.com/categories/rails_authentication.html


authlogicの使用も検討したいと思います。restful_authよりもはるかにクリーンです。Authlogicはこれまでのすべてのソリューションから学び、よりクリーンでカスタマイズ可能なソリューションに再パッケージ化しました
taelor 2009年

私はあなたのアドバイスを受けてAuthlogicを選びました、そして私は本当に嬉しいです。セットアップに少し時間がかかる場合がありますが、非常にクリーンで理解しやすいものです。生成されたコードの恐ろしい山はありません。
ガイC

ええ、defはセットアップに時間がかかります。彼がそこで抽象化を少し削除し、パスワードを忘れたり、確認メールを含めたりするなど、誰もが必要とするものが同梱されていればよかったのにと思います。しかし、全体として、それはまだかなり良いです。
ブライアンアームストロング

私はそれをOpenIDとRPXNowとも組み合わせることができました。これは素晴らしい結果になりました。例は、buyersvote.com
Brian Armstrong

サンプルプロジェクトを使用すると、起動と実行が非常に簡単になります。リポジトリをgitcloneし、database.ymlファイルにコピーするだけで、完全に認証されたサイトの準備が整います。
ケイシーワトソン

22

RestfulAuthenticationを本当にお勧めします。これは事実上の標準だと思います。


1
私はこれを2番目にします。最近、かなり複雑なマルチサイト認証システムを実装する必要がありました。これは、RestfulAuth設計に基づいており、RAと同じAPIをアプリケーションの残りの部分に提供します。コードを読む:
Laurie Young

10

本当に簡単な解決策については、クリアランスを使用してください

より多くのオプションを探しているなら、Deviseは素晴らしいソリューションです。ラックベースの認証システムであるWardenを使用します。


1
Deviseを保証できます。私は自分のアプリでそれを設定しました、そして少なくとも比較的初心者としての私にとってはそれは使いやすいと言うことができます。私はここで私の経験についてブログ:therealmattslay.blogspot.com/2010/06/...
MattSlay

申し訳ありません...修正されたリンクは次のとおり
MattSlay


3

注意点として、LoginGeneratorとSaltedLoginGeneratorはRestful Authenticationに取って代わられ、新しいRailsリリースではサポートされていません。当時は素晴らしいものでしたが、時間を無駄にしないでください。


3

また、もう少し堅牢なものを探している場合に備えて、RestfulAuthenticationのコア機能を拡張するための優れたチュートリアル/ディスカッションを指摘したいと思います。


1
私をひどく失礼だとは思わないでください。しかし、フォーラムへの参加はRestfulAuthenticationの最悪の部分の例だと思います。不足している機能は多数あります。これらの機能を一度に1つずつ追加するための、非常に長い(そして矛盾する)一連の手順を次に示します。DRYの反対が何であれ、私はそれだけだと確信しています。自分自身を繰り返すのではなく、他の何百人もの開発者を繰り返して、最初からRAに含まれるべきまたはオプションであるはずのものを含めます。
John Munsch

3

私はthoughtbotのクリアランスが本当に好きです。非常にシンプルで、いくつかの優れたフックがあり、テスト可能です。


3

AuthLogicはあなたがこれに望むもののようです。それは非常に構成可能であり、コードを生成しませんが、非常に使いやすいです。電子メールの検証とパスワードの回復には、おそらくこの:perishable_token列を使用することをお勧めします。AuthLogicがそれを処理し、使用時にリセットするだけで済みます。基本的なアプリの設定方法については、AuthLogicでのRyanBatesRailscastと「公式」サンプルアプリをご覧ください。AuthLogicの作成者であるBenJohnsonは、パスワードをRESTfullyにリセットする方法についてのブログ投稿も書いています。

残念ながら、複数のリンクを投稿することはできませんが、railscastへのリンク、パスワードリセットのブログ投稿、およびサンプルアプリはすべてREADMEにあります(READMEについてはAuthLogicリポジトリを参照してください)。

更新:リンクをさらに投稿できるようになったので、さらにリンクしました。その間にリンクを追加してくれてありがとうmarinatime



2

restful_authenticationは、非常に柔軟で、箱から出して探しているもののほとんどを提供する強力なツールです。ただし、いくつかの注意点があります。

  1. 「コントロール」の観点から考えないでください。Railsでは、モデル、ビュー、およびコントローラーは、「Webフォームスタイル」のASP.NETよりもはるかに独立しています。各レイヤーから個別に必要なものを作成し、一致するテスト/仕様を作成して、各レイヤーが期待どおりに動作していることを確認します。
  2. プラグインを使用している場合でも、生成されたコードの(少なくとも一部の)読み取りに代わるものはありません。内部で何が起こっているかについて全体像を把握している場合は、デバッグとカスタマイズがはるかに簡単になります。

2

プラグインrestful_authenticationとそれを拡張する他のプラグインはあなたのニーズに完全に答えます。github.comですばやく検索すると、多くのチュートリアル、例、拡張機能が表示されます。ここに行くだけです:-http//github.com/search
q = restful_authentication

認証部分だけを備えた最低限のRailsアプリの例を提供するためだけにrestful_authenticationを使用するプロジェクトがいくつかあります。

  1. http://github.com/fudgestudios/bort-以下を特徴とするベースレールアプリ:RESTful認証
  2. http://github.com/mrflip/restful_authentication_example-restful_authenticationの使用方法の優れた例を示す別のプロジェクト
  3. http://github.com/activefx/restful_authentication_tutorial-上記と同じですが、他のプラグインがいくつかバンドルされています。
  4. http://railscasts.com/episodes/67-restful-authentication-restful_authenticationを説明する優れたスクリーンキャスト

この情報は、頭と尾を見つけ始めるのに十分なはずです...頑張ってください。


2

これを更新するだけです:Ryan BatesのRailscast#250は、認証システムを最初から構築することを示しています。


2
特注の認証システムのRailsCastは素晴らしいですが(そして私は同様のシステムを複数回実装しました)、それは決して事前に構築されたものではなく、Deviseのようなセットアップが提供するすべての機能を提供するわけではありません。
コリンR

同意しましたが、Deviseはかなりかさばる可能性があります。私の意見では、Deviseが提供する機能を実際に十分に活用する予定がない限り、独自の認証システムを構築することで、多くの時間と苦痛を節約できます。
Adam Jonas

2
RoRアプリケーションで使用できるビルド済みのソリューションを探しています。
コリンR

0

クリアランスへの別の投票-おそらくauthlogicほどカスタマイズ可能ではなく、「in」としてではありませんが、それを所定の位置にドロップして移動できるという点では、一見の価値があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.