📝Day 81(55)第一WEモチーフDIARY


-プロジェクトの進捗


1.会員がAPIに加入

  • 会員が重複電子メールを入力中にエラーが発生しました
  • 会員入空値エラー処理
  • 会員加入成功時
  • 2.ログインAPI

  • ログイン時に無効なEメールが入力された場合は
  • です.
  • ログイン時に入力したパスワードが無効な場合:
  • ログイン成功時に復号するメッセージとトークン値
  • - TODAY I LEARN ERROR 🦠

  • トークンをCookieまたはローカルストレージに保存すると、セキュリティ上の問題が発生します.
  • 開発者ツールでは、Cookieに格納されている値を任意に変更してこれらの悪い動作にアクセスできます.
  • - HOW TO FIX MY ERROR 💊

  • ERRORソリューションsession id🔑そのため、長期にわたって貨幣を暴露することはできない.
    ソリューション
  • テンポラリファイルとして保存する方法、
  • 実行時のみタグを保存する方法
  • はHTTPOnlyに格納されており、JavaScriptを使用して
  • へのアクセスは許可されていません.
  • セッションIdに保存する手順は、次のとおりです.
    => 중요한 정보는 서버에서만 관리하고 클라이언트에게는 세션 키만 제공하자!
  • サーバ上でセッションオブジェクトを作成し、プロパティ名を使用してプロパティ値に情報を格納し、uniquentをクライアントに送信します.
  • 修正コード
  • -知らない


  • tokenのクッキー、localstorage、sessionでの相違
  • なぜセッション
  • が必要なのか

    -学んだこと


    JWTは
  • セキュリティの面で
    CookieまたはローカルストレージにJWTタグを格納するのは安全ではありません.悪意のあるスクリプトで
  • に簡単にアクセスできるからです.
  • フロントエンドは、ローカルストレージからトークン
  • を取り出す記憶する.
    <script>
     handleClick = e => {
        const { email, password } = this.state;
        e.preventDefault();
        fetch('/signin', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
          },
          body: JSON.stringify({
            email,
            password,
          }),
        })
          .then(res => {
            return res.json();
          })
          .then(data => {
            if (data.msg === 'SUCCESS_SIGNIN') {
              // this.goToList();
              localStorage.setItem('jwt', data.token);
              const tokenInLocalStorage = localStorage.getItem('jwt', data.token);
              console.log(tokenInLocalStorage);
            }
          });
      };
    </script>
  • サーバは、res.cookieに格納し、ブラウザのcookieに保存します.res.cookie('jwt', accessToken);
  • <script>
    // node 로그인 컨트롤러
    const signInUser = async (req, res) => {
      try {
        const { email, password } = req.body;
        const accessToken = await signInService.signInUser(email, password);
        const decoded = jwt.verify(
          accessToken,
          process.env.ACCESS_TOKEN_SECRET_KEY
        );
        res.cookie('jwt', accessToken);
       return res.status(201).send({
          msg: 'SUCCESS_SIGNIN',
          token: accessToken,
          decoded,
        });
      } catch (error) {
        const { statusCode, message } = error;
        return res.status(400).send({
          msg: message,
        });
      }
    };
    // node 로그인 컨트롤러
    </script>

    -うまくやっている点と改善すべき点

  • 早く寝る場所と、困ったことがあるたびに、自分の限界を直さなければならない.

    -目標と締切日:2021年-10月12日

  • express-session npmをインストールして、ユーザー情報
  • を記憶します.
  • を受け入れて反映する.