Ruby on Rails での認証に最適なソリューション [終了]
-
09-06-2019 - |
質問
RoR アプリケーションで使用できる事前構築済みのソリューションを探しています。理想的には、電子メール検証、サインアップ制御を提供し、ユーザーがパスワードをリセットできるようにする、ASP.NET フォーム認証に似たものを探しています。そうそう、現在アプリケーションにログインしているユーザーを簡単に取得できます。
すでに書かれた作品を調べ始めましたが、非常に混乱していることがわかりました。LoginGenerator、RestfulAuthentication、SaltedLoginGenerator を調べましたが、優れたチュートリアルやそれらの比較を提供する場所はないようです。私がまだ見つけていないサイトがある場合、またはほとんどの人が使用している事実上の標準がある場合は、ご協力いただければ幸いです。
解決
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-revized
サイドノート:Ruby Toolbox は、さまざまなカテゴリ (GitHub ウォッチャーの数に基づく) で現在最適なソリューションを見つけるのに最適なサイトです。
http://ruby-toolbox.com/categories/rails_authentication.html
他のヒント
本当にお勧めします 安静な認証. 。ほぼデファクトスタンダードだと思います。
それもあります RestfulOpenID認証 パスワードのサポートに加えて OpenID のサポートが必要な場合。
注意点として、LoginGenerator と SaltedLoginGenerator は Restful Authentication に置き換えられ、新しい Rails リリースではサポートされていません。当時は素晴らしかったですが、時間を無駄にしないでください。
優れた点も指摘したいと思います チュートリアル/ディスカッション もう少し堅牢なものをお探しの場合に備えて、Restful Authentication のコア機能の拡張について説明します。
私はthoughtbotのクリアランスがとても気に入っています。非常にシンプルでいくつかの優れたフックがあり、テスト可能です。
認証ロジック これはあなたが望んでいることのようです。非常に構成可能で、コードは生成されませんが、使用は非常に簡単です。電子メールの検証とパスワードの回復には、おそらく :perishable_token
カラム。AuthLogic がそれを処理します。使用するときのみリセットする必要があります。基本的なアプリのセットアップ方法については、Ryan Bates のドキュメントを参照してください。 AuthLogic での Railscast, 、および「公式」サンプルアプリ。AuthLogic の作成者である Ben Johnson も、RESTful にパスワードをリセットする方法についてブログ投稿を書いています。
残念ながら、複数のリンクを投稿することはできませんが、railscast へのリンク、パスワード リセットのブログ投稿、およびサンプル アプリはすべて README に含まれています (README については、AuthLogic リポジトリを参照してください)。
アップデート:さらにリンクを投稿できるようになったので、さらにいくつかリンクしました。marinatime さん、リンクを追加していただきありがとうございます
restful_authentication は、非常に柔軟で、探しているもののほとんどをそのまま提供する強力なツールです。ただし、いくつかの注意点があります。
- 「コントロール」という観点から考えないでください。Rails では、モデル、ビュー、コントローラーは、「Webforms スタイル」の ASP.NET よりもはるかに独立しています。各レイヤーに何を求めるかを個別に検討し、それに一致するテスト/仕様を作成し、各レイヤーが期待どおりに動作していることを確認します。
- プラグインを使用している場合でも、生成されたコード (少なくとも一部) を読み取ることに代わるものはありません。内部で何が起こっているかの大まかなアイデアがあれば、デバッグとカスタマイズがはるかに簡単になることがわかります。
プラグインrestful_authenticationとそれを拡張する他のプラグインは、あなたのニーズに完璧に答えます。github.com で簡単に検索すると、多くのチュートリアル、例、拡張機能が見つかります。ここに行ってください:
- http://github.com/search?q=restful_authentication
認証部分のみを備えた最低限の Rails アプリの例を提供するためだけに、restful_authentication を使用するプロジェクトがいくつかあります。
- http://github.com/fudgestudios/bort -- 以下の機能を備えた基本レール アプリ:RESTful認証
- http://github.com/mrflip/restful_authentication_example --restful_authentication の使用方法の優れた例を含む別のプロジェクト
- http://github.com/activefx/restful_authentication_tutorial -- 上記と同じですが、他のプラグインがバンドルされています。
- http://railscasts.com/episodes/67-restful-authentication --restful_authentication を説明する素晴らしいスクリーンキャスト
この情報は、表と裏を見つけるのに十分なはずです...幸運を。
これを更新するだけです:ライアン・ベイツ レールキャスト #250 認証システムを最初から構築することを示しています。
Clearance にもう 1 票。おそらく、authlogic ほどカスタマイズ可能ではないし、「組み込まれていない」かもしれませんが、ただ所定の位置にドロップしてすぐに使用できるという点で、検討してみる価値は間違いなくあります。