2011-09-16 14 views
1

backbone.jsの新機能で、簡単なモデルとコレクションから小さなテストをいくつか作成しました。 (実際には非常に良いです)バックボーンについてpeepcode screencast価値が数ドルbackbone.js:backbone.jsを使用してクライアントからサーバーにログインデータを送信する方法を教えてください。

けどとして、私はまだ、すべてが直接参照を参照してください。ユーザーと呼ばれる特定のモデルがあり 、あなたはそのユーザモデルがどのように見えるか印刷しビューを持っています、。

投稿のクリック後にログインフォームが表示され、ユーザー名とパスワードが正しいかどうかを検証したりテストしたりするために、サーバーとの接続をどこに保存/保存すればよいですか?

私はそれを別のモデルで保存する必要がありますか?

私はまだ、私のアプリで本当によく定義されたエンティティ、つまり連絡先を持っているユーザーについて、まだまだ考えていると思います。これらの定義されたエンティティ以上のモデルを作成する必要があると感じています。

答えて

1

あなたは正しく考えています。ログインは、単にユーザーエンティティのために実行されるメソッドです。私の場合、あなたのユーザーモデルにログインメソッドを追加するのが最善の方法です。 this.get( 'username')とthis.get( 'password')をチェックし、検証のためにajaxリクエストを行います。

このメソッドは、loginSuccessとloginErrorの2つのコールバック(エラー)を取ります。ログイン要求がOKに戻ったら、ユーザモデルにいくつかのプロパティを設定する必要があります:this.set({authenticated:true})

あなたのビューはuserModel.bind( 'change:authenticated'、this.update);適切に更新してください。

+0

したがって、モデルでは「認証済み」が認識されますが、FirebugまたはChromeコンソールからモデルに同じ値を設定できます。あなたはそれをサーバー側から信じることはできません。クライアントからサーバーへの各要求に対してユーザーの身元を再検証するために使用されるもの以上のものが必要です。 –

+2

私が言及した以上にそれ以上のことがありますが、彼の質問は、認証の取り扱いのバックボーンの方法に沿っているように思えました。理想的には彼のログイン方法はまた、バックボーン・シンク –

+0

をオーバーロードすることによってリクエストに追加するトークン値を付加することになります。私の質問はすでに上記のように求められています。ログインのバックボーンの方法は大丈夫ですが、他のポストでは両方のおかげで – Sander

1

これは確かに唯一の方法ではありませんが、私たちはCASを使ってバックエンドの認証を処理しています。そのため、ブラウザーには、「やあ、ログインしました」というCookieが取得されます。このCookieは、後ですべてのRESTクエリーとともに返されます。バックエンドへの実際の呼び出しは、すべての通信で認証されているかどうかを心配する必要はなく、すべての要求に対応するCookieと、ユーザーが他のすべての外部で有効であることを確認するコードの第2部分に依存しています。うまくいくようです。

私はあなたに似たものが必要になると思います。サーバーがそのユーザーを正常に認証したことを確認するために使用される、各要求(セキュリティ上の理由からHTTPSを使用していることが望ましい)に付随する、サーバーからクライアントに渡されるトークン。バックエンドに各リクエストでユーザー名とパスワードを送信するのと同じことを実現するためにクライアントが使用できることは絶対にありません。

関連する問題