Logged In User #01


今度はプレイヤーを覚えられるものを作ります。


誰がログインしたのかということです.しかし、実際には、覚えているとは言えないかもしれません.
私が今日何かを学んだことを覚えているので、寝てしまいました.
そしてまた起きたら、あなたが学んだことを覚えています.携帯番号を覚えているようです.
寝て起きても、携帯番号を覚えているように.
しかし、サーバはそうはできません.サーバには、すべてのリクエストのidが必要です.
これらは覚えられないので、例えば、「あなたの携帯番号は何ですか」と言う人がいます.君に聞いたことがある.
誰がidカードを受け取ったのか分からないなら、「これはあなたの携帯番号ですね.」表示されます.
そして寝て立ち上がり携帯番号を聞くと
「お前は誰だ?」idカードがあれば携帯番号を教えてください.
わかってるよだから誰も覚えていない.idの情報を持つidを作成し、もし誰かがDBカードを持って私を探しに来たら、その時になってから確認します.
だから覚えているとは言い難い.1秒ごとに忘れた人と会話するように.
それがサーバーです.
今ここにid会話があります.
_LJRIAPlxO7fUVAYnBkjUDGQgdzvap0E: {
    cookie: { originalMaxAge: null, expires: null, httpOnly: true, path: '/' }
  },
DBに行くんだ
ユーザーがログインすると、そのユーザーに関する情報がセッションにロードされます.
  const ok = await bcrypt.compare(password, user.password);
  if (!ok) {
    return res.status(400).render("login", {
      pageTitle,
      errorMessage: "Wrong password",
    });
  }
  req.session.loggedIn = true;
  req.session.user = user;
  return res.redirect("/");
};
そして、プレイヤーごとに異なるuserControllerがあるのを覚えています.
人によって異なるreq.session objectがあるからです.idと書いてあります.
次いで、req.session.loggedIn = trueは、req.session.userにおいて見出されたDBを使用する.
これにより、セッションに情報を追加できます.

ブラウザごとに異なるセッションがあったのを覚えています。


すべてのブラウザに同じセッションがあるわけではありません.すべて違います.
セッションuserがセッションloggedInに追加され、trueがセッションに保存されます.
更新後はuserへ.セッションloginを表示してログインします.
ご覧のようにDBに変更はありませんが、セッションtemplateを表示するとCookie DBになります.idが見えます.idloggedInで、trueもあります.
今からuserに行って、Homeに着きます.Searchに行きました.
再びUpload Videoへ向かいます.Homeを見て、このようにスクリーンを移動するたびに
楽屋は私がログインしたことを知っています.他のブラウザを試してみることもできます.
別のブラウザからSearchまで、2つのセッションが表示されます.
ログインしているプレイヤーと、ログインしていないプレイヤーがいます.
誰が登録したのかわかる
これに基づいてSearchを修正します.templatesession.loggedInならtrueJoinを区別します.しかし、Loginを見せてあげます.
次に、テンプレートがセッションにアクセスできるかどうかを確認します.Logoutから
body 
        header
            h1=pageTitle
            nav 
                ul 
                    li  
                        a(href="/") Home
                    if !req.session.loggedIn
                        li 
                            a(href="/join") Join
                        li 
                            a(href="/login") Login
                    li  
                        a(href="/search") Search
                    li 
                        a(href="/videos/upload") Upload Video
base.pugでなければ、loggedInJoinが見えます.Loginからbase.pugに近づくかどうか見てみましょう.
新たな侵害であればだめです.別の方法で大丈夫です
誰がreq.session.loggedInなのか分かるので、ここのセッションuserで.
user: {
      _id: '625942ace3564e09811a5f21',
      email: '[email protected]',
      username: 'Cyber Lover',
      password: '$2b$05$WMO/VH/yctvvPJST0SyLq.QRQfSNeLJ5zAJPFfRMwLgg5ZFq1KtBm',
      name: 'Mercury',
      location: 'NYC',
      __v: 0
    }
つまり、誰がプレイヤーなのかは分かるが、DBテンプレートと共有することはできない.
これを共有できるはずです.これは次の部分でやりましょう
重要なのは、どのような問題が発生したのかを理解し理解することです.pugは情報を格納している.ユーザーログイン成功No
どうでもいい.req.session objectおよびloggedInが追加された任意の情報を追加できます.
もう2つのセッションがあります.1つはログインしたセッションで、もう1つはログインしていないセッションです.