0

私はmongodbでnodejs(エクスプレス)を使用しており、Cookieがどのように機能するかを理解しようとしています。現在、ユーザーにログインして認証させることができます。Cookie を有効にする方法と、Cookie を使用して mongodb にクエリを実行してユーザーの情報を取得し、ログイン後に次のページとその後のページにプルする方法を教えてください。

現在、ログイン要求を投稿し、成功に基づいて userProfile ページにリダイレクトするルート ファイルがあります。そのページにユーザー固有の詳細を含めてから、ユーザーに他のページを表示して、ユーザーに固有のページに再び戻ってもらうことができるようにしたいと考えています。クエリ中。

更新されたコード: (更新されたコードで呼び出された方法で Cookie を呼び出すことができますか?)

ログイン ポスト ルート ファイル

exports.loginPost = function(req, res, next) {
    passport.authenticate('local', function(err, user, info) {
        if (err) { return next(err) }
        if (!user) { return res.redirect('loginError'); }
        req.logIn(user, function(err) {
          if (err) { return next(err); }    
          res.cookie('name', req.params.email, { expires: new Date(Date.now() + 900000), httpOnly: true });    
          return res.redirect('userProfile');
        });
  })(req, res, next);
};
4

1 に答える 1

1

最初に読むExpressjs でミドルウェアと app.use が実際に意味するもの

次に、cookieparser と cookiesession を使用します

app.use(express.cookieParser('yoursecretkeyhere'));
app.use(express.cookieSession();

上記の関数を認証ミドルウェア メソッドと認証 POST ハンドラに分割します。

認証ミドルウェアは、セッションに Authenticated フラグがあるかどうかを確認し、そうでない場合はログイン ページにリダイレクトするだけで済みます。(これが単一ページ アプリの一部である場合は、401 を返し、ブラウザーで資格情報を要求するだけです)

次に、認証 POST ハンドラーは、投稿されたユーザー名とパスワードの資格情報 (またはサード パーティの API に対するその他の資格情報) をチェックし、session.Authenticated フラグに続いてリダイレクトを設定します。

于 2013-07-03T15:11:51.487 に答える