2

パスポートのローカル認証を使用して単一ページのアプリケーションを構築しています。ユーザーは認証され、返されますapp.post "/login" userobject が返された後、私はそれを保存しますChaplin.mediator.user(facebook-example に見られるように)。URL を手動で変更しない限り、すべて正常に動作しますが、URL を変更して Enter キーを押すと、アプリケーションが再度読み込まれますが、別のルートで --> フロント エンドにユーザーがいません。

私が今行っていることは、ルートを手動で変更するたびに、サーバーにリクエストを送信し、 でユーザーを要求することですreq.user。ユーザーを受け取った後、アプリケーションはワークフローを続行します。それは機能しますが、これが意図されている方法ではないと思います。応答を待たないと、ログインしていてもユーザー オブジェクトがなくなります。

どうすればこの問題を解決できますか?

編集:ユーザーを別のCookieに保存することになりました。これは私がユーザーを保存する方法です:

  $.cookie.json = true;
  $.cookie 'user', user.toJSON()

これは、ページが読み込まれた後にユーザーを抽出する方法です。

  userCookie = $.cookie 'user'
  if userCookie?
    mediator.user = new Model JSON.parse userCookie

機能させるにはjquery-cookie プラグインが必要です。ユーザーがログアウトする場合は、Cookie を忘れずに削除してください。そしてもちろん、私はまだ他のアイデアにもオープンです。

4

1 に答える 1

1

ユーザー(別名セッション)をローカルに保存する必要があります。アプリケーションがロードされたらBackbone、ユーザーが実際にすでにログインしている場合は、ユーザーを正しい場所にルーティングする必要があります。

于 2012-11-27T22:33:24.707 に答える