39

フロントエンドでバックボーンを使用し、サーバー上のシンRESTful APIからデータを消費する単一ページアプリのプロトタイプを開発しました。

サーバー側のアプリケーション開発 (php と python) を多用してきた私は、クライアント側の厚い MVC を使用した新しい異なる設計アプローチを本当に楽しんでいますが、ログインする認証済みユーザーにアプリを制限する最善の方法について混乱しています。

アプリ自体をログインの背後に置くことを好み、サイトのネイティブ ログインに加えて、最終的には他の種類のログイン (openid、fb 接続など) を実装したいと考えています。これがどのように行われるのかは不明であり、検索していますが、それを明確にする情報を見つけることができませんでした.

全体像として、ユーザーを登録し、単一ページ アプリを使用するためにログインを要求するための現在のベスト プラクティスは何ですか?

ユーザーがログインすると、API リクエストはどのように認証されますか? セッションを保存できますが、API 呼び出しでこのセッションを検出するにはどうすればよいですか? または、API 呼び出しごとに渡さなければならないトークンがありますか? これに対する答えは大歓迎です!

4

3 に答える 3

9

django Cookie ベースの認証を使用し、ログイン用とシングルページ アプリ用に別のページを用意しています。私たちのユースケースではかなりうまく機能します。ここで説明したバックボーンベースのセッション管理システムを使用しました: backbone.js - ユーザーがログインしているかどうかの処理

于 2012-09-19T20:58:11.333 に答える
4

Angular.js を使用しており、ログイン用の別のページもあります。別のページは、http XHR 要求を使用してサーバーを呼び出し、ユーザー名とパスワードを送信する、別の単一ページ (および安全な) アプリケーションを読み込みます。サーバーが資格情報を認証した場合、JavaScript コードは Cookie を設定します。この Cookie は「反対側」、つまり非セキュアなアプリケーションから読み取られる可能性があります。Cookie にはユーザー名のみを入れ、もちろんパスワードやその他の安全な情報は入れません。次に、「Lior ではありませんか?」のようなものを表示できます。安全でないアプリでログアウトします。

注意すべき唯一のことは、Angular の Cookie メカニズムをオーバーライドして、無期限の有効期限と、最も重要なルート パスを設定することです。

$document[0].cookie = 'username=' + escape($scope.userName) + ";expires=Thu, 01 Jan 2970 00:00:00 GMT; Path=/";
于 2013-04-08T16:15:07.507 に答える