ユーザーのログイン時にアプリ全体で使用するユーザー情報を保存する必要がある Backbone.js と require.js を使用して Web アプリを作成しています。現在、ユーザーが資格情報を送信すると、Web サービスがユーザーを認証し、そのユーザーに関するデータを返します。従来は、その情報をセッションに保存できました。バックボーンを使用してこれを達成するにはどうすればよいですか?
3 に答える
そのために HTML5 SessionStorageを使用することをお勧めします。バックボーン統合については、このSessionStorageAdpater をご覧ください。
現在、大規模なバックボーン/マリオネット アプリケーションを作成中です。ユーザー情報(パスワードなどではない)をuserというモデルに保存しています。次に、このモデルを使用して、最初にセッション ID をチェックしてユーザーを検証します。
// before every request
if (app.Core.models.user.get('sessionid') != "") {
// then I run the code. Authentication can still fail on the server.
} else {
// trigger the event to bring up the sign in page
app.vent.trigger('App:Core:Login');
}
app.Core.models.user
ユーザーがアプリケーションにログインした後、認証から受け取った情報をモデル内に保存します。私の認証では完全なユーザー名が返されないため、別の ajax 呼び出しを行ってこの情報を取得し、その情報もモデルに保存します。次に、ページのヘッダーのユーザー名を自動的に更新するページのセクションにモデルを関連付けます。
ブラウザは暗号化された Cookie を自動的に保存するので、この情報をサーバーに送り返す必要はありません。
通常、認証情報は、リクエストごとにサーバーに送信される暗号化された Cookie に保存されます。これは基本的に、ログインしているユーザーを Web サーバーの ID ストアに関連付ける値です。
おそらく、プロファイル データ (つまり、ユーザーに関するメタデータ - 名、誕生日など) に関心があるでしょう。ユーザーがログインしたら、ページが読み込まれると、サーバーへの ajax 呼び出しを介して現在のユーザーに関するプロファイル データをフェッチします (要求には、Web フレームワークが現在ログインしているユーザーを見つけるために使用する認証 Cookie が含まれます)。 . そのため、現在のユーザーに関してアプリが必要とするプロファイル データを含む json データ構造を返すルートを Web アプリで公開する必要があります。