3

現在、サーバー側のテンプレート言語 (この場合はjade ) を使用して静的ページと HTML ページを提供する Node.js アプリがあります。認証が成功した後、現在ログインしているユーザーに関するデータを返したいので、バックボーンはコンテンツのレンダリングを開始できます。/login/index

たとえば、 Mongoに、およびそれらが属しているグループに関する情報を格納するUserGroupドキュメントがあります (認証情報)。User

Passportを使用すると、ユーザーを認証してメイン ページにリダイレクトできます。

app.post('/login',
  passport.authenticate(
    'local',
    {
      successRedirect: '/',
      failureRedirect: '/login',
      failureFlash: true
    }
  )
);

/リダイレクト後、バックボーン ルートの最初のレンダリングでバックボーンが取得するユーザーに関するデータを送信するにはどうすればよいですか?

res.send()これは、最初のリクエストを開始したのはバックボーンではなく、ユーザーに関するメタデータを含むセッションを使用していたとしてもでしょうか。

4

2 に答える 2

0

クライアントからのオープンリクエストが必要です。ページとサーバー間の接続を維持するために、socket.io を調べてみてください。それが多すぎる場合は、バックボーンを使用して AJAX リクエストを作成し、ログインが成功するまでサーバーにリクエストを「保持」させ、準備ができたら応答を送信してみてください。ただし、ajax リクエストとログイン リクエストを一致させるのは難しいでしょう。

于 2013-03-12T20:19:16.100 に答える
0

認証されたユーザーには、彼に関連付けられた Cookie があると思います。アプリの初期化時に、Cookie を解析してグローバル ユーザー オブジェクトを作成できます。または、ユーザーの詳細を json 形式でページのスクリプト タグに出力し、それを使用して currentUser オブジェクトを構築することもできます。これがこれを行うための最良の方法であるかどうかはわかりません。私はそれを自分で調べています。これについての考え/フィードバックを聞きたいです。

于 2013-03-21T23:27:02.893 に答える