主な特技の再整備プロジェクト


axios method
驚いたことに忘れてしまいましたが・・・方法星が入る因子が違う!
axios.get(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.delete(url[, config])
  • getの場合、urlにリクエストを入れることはできませんので、パラメータとして値を入れます.
    Ex) /article?username=${user_name}
  • JWT
  • パッケージインストール
  • yarn add jwt-decode // 토큰의 payload 내용을 디코딩해주는 패키지.
    yarn add universal-cookie // 쿠키 관련 동작을 할수 있게 해주는 패키지. 이거 없으면 직접 js로 짜야함;;
    // module
    import Cookies from "universal-cookie";
    import jwt_decode from "jwt-decode";
    ...
    const cookies = new Cookies();
    ...
    // action creator
    const loginSV = (user_name, pw) => {
      return function (dispatch, getState, { history }) {
        instance
          .post("/user/login", {
          username: user_name,
          password: pw,
        })
          .then((res) => {
          cookies.set("refresh_token", res.data, { sameSite: "strict" });
          const token = cookies.get("refresh_token");
          const decoded = jwt_decode(token);
          dispatch(logIn(decoded.sub));
          history.replace("/");
        })
          .catch((err) => {
          console.log("login error!", err);
        });
      };
    };
    
    const loginCheckCK = () => {
      return (dispatch, getState, { history }) => {
        const token = cookies.get("refresh_token");
        const decoded = jwt_decode(token);
        dispatch(checkLogin(decoded.sub));
      };
    };
    
    const logoutSV = () => {
      return (dispatch, getState, { history }) => {
        dispatch(logOut());
        history.push("/login");
      };
    };
    // /shared/Request.js
    import axios from "axios";
    import Cookies from "universal-cookie";
    const cookies = new Cookies();
    
    const instance = axios.create({
      baseURL: "http://118.67.134.8",
    });
    
    // 가지고 있는 토큰 넣어주기!
    // 로그인 전이면 토큰이 없으니 못 넣어요.
    // 그럴 땐 로그인 하고 토큰을 받아왔을 때 넣어줍시다.
    const USER_TOKEN = cookies.get("refresh_token");
    instance.defaults.headers.common["Authorization"] = USER_TOKEN;
    
    export default instance;
    プロジェクトレビュー

  • よくできました:crud機能の実現は熟練していて、バックエンドサーバーと一緒にログイン、ネットに入るなどの機能を実現しました.メンバーと良い役割を果たすために、良いコミュニケーションをとりました.

  • 残念なことに、バックエンドチームがapi設計を行うときに一緒にいられるといいです.バックグラウンドでapiを一方的に作成して渡す機能はいくつかあり、理解と使用に問題があります.チームメンバーと協力して基本的なコード会議を行い、コードレビューを行うと、プロジェクトがより効果的になります.バックエンドチームがapiを正しく実現したかどうかを尋ねる前に、私のコードをもう一度チェックしてください.すべての質問に即興的に答えすぎたようです.
  • サイトの配備
  • FE git
  • プロジェクトreadme