13

認証を行うための最良の方法は何ですか?

フロントエンドではAngular.jsを使用しています

バックエンド: Ruby on Rails

フロントエンドの API として使用する Rails アプリ。

更新: これは単一ページのアプリケーションになります。フロントエンドは Angular.js で開発され、バックエンドは Ruby on Rails で開発されます。理想的には、json で返されるリソースのコレクションとしてバックエンドを構築したいと考えています。

セキュリティ実装の最良の方法を検索します。

ユーザーがアプリを開くと、ユーザーが認証されたかどうかを確認する必要があります。そうでない場合は、ログインページに移動し、認証された場合は、必要なものを開き、必要なリソースをバックエンドから返します。

クライアント側に認証トークンを保存する必要があると思います。それを生成するための最良の方法は何ですか、またはRailsがすでに生成していますか?

4

2 に答える 2

4

私は Angular.JS をまったく知りませんが、どの Javascript フレームワークでも使用できるレールに関する一般的な情報を提供しようとします。

認証には、次のものが必要です。

  • ユーザー向けモデル
  • ログインを処理するコントローラー。このメソッドはユーザーのログイン/パスワードをチェックし、必要なすべての情報を含むセッション オブジェクトを作成します (セッションはサーバー側に保存され、クライアント側では Cookie を使用して各リクエストをセッションに関連付けます)。
  • 基本的にユーザーのセッションを破棄するだけのログアウトを処理するためのコントローラー

こちらのレール チュートリアルに適切な実装があるか、いくつかのプラグインを見つけることができます ( authlogicは、こちらのスタックオーバーフローユーザーの推奨事項のようです)。

次に、静的 html ページまたは AJAX を使用した認証の処理にはほとんど違いがありません。

  • HTML リクエストはログインとパスワードをコントローラーに送信し、セッションが作成されると別の内部ページに自動的にリダイレクトします。
  • AJAX では、クライアント側の JavaScript が ajax リクエストを送信し、サーバーによる回答を探し (成功/失敗)、適合したアクションを起動する必要があります (失敗の場合はメッセージ、成功の場合はリダイレクト)。

どちらの場合も、重要なことは、ユーザーが各コントローラーで認証されていることを確認することです。認証されていない場合、誰でもアクションを起動したり、内部情報にアクセスしたりできます。

于 2012-08-06T14:02:29.033 に答える
1

私は似たようなことをしようとしていますが、正しい方向に進むのに非常に役立つこのサンプルアプリを見つけました: https://github.com/karlfreeman/angular-devise

また、それに関する詳細な議論もチェックしてください: https://github.com/karlfreeman/angular-devise/issues/1

そして、これは少し異なるアプローチをとる別のレポです: https://github.com/colindensem/demo-rails-angularjs

上記のすべてからアイデアを借りることになりました。誰かが興味を持っている場合は、これが動作するデモです: https://github.com/jesalg/RADD

于 2013-05-01T04:20:57.357 に答える