가수면

로그인 (리액트 쿠키) 본문

React/React

로그인 (리액트 쿠키)

니비앙 2022. 12. 22. 03:17

컴포넌트화 (필수x)

import { Cookies } from "react-cookie"

const cookies = new Cookies()

export const setCookie = (name: string, value: string, option?: any) => {
  return cookies.set(name, value, { ...option })
}

export const getCookie = (name: string) => {
  return cookies.get(name)
}

 

컴포넌트화 안 할 경우

 

쿠키에 저장

컴포넌트화 했을 경우

const jwtToken = await signIn(signInPayload)
if (jwtToken) {
  setCookie('myToken', token, {
    path: "/",
    secure: true,
    sameSite: "none",
  })
}

컴포넌트화 안 했을 경우

 

export const __login = createAsyncThunk(
  "LOGIN_TODO",
  async (loginInfo, thunkAPI) => {
    try {
      const login = await instance.post("/user/login", {
        account: loginInfo.account,
        password: loginInfo.password,
      });
      // 토큰 선언
      const accessToken = login.data.accessToken;
      // 쿠키 저장 (백엔드에서 다 넘겨주는 경우 option설정할 필요 없음)
      cookie.set("token", accessToken);

 

쿠키 불러오기

인스턴스 안 쓸 경우

const loaded_data = await axios.get(`http://3.39.25.179:8080/api/main?page=${payload.currentPage}&size=8&sortBy=postId&isAsc=${payload.isAsc}`, {
                headers: {
                    Authorization : `Bearer ${payload.token}`
                }});

인스턴스 쓸 경우

const getCookie = cookie.get("token");
instance.interceptors.request.use((config) => {
  config.headers.authorization = `Bearer ${getCookie}`;
  return config;
});

 

쿠키 삭제

  const deleteTokenHandler = () => {
    cookie.remove('token', { path: '/' })
    alert('로그아웃되었습니다.')
  }

'React > React' 카테고리의 다른 글

리액트만으로 달력 만들기 (공휴일 API 적용)  (0) 2023.01.06
스크롤 막기  (0) 2022.12.28
useRef  (0) 2022.12.21
커스텀 훅  (0) 2022.12.10
useMemo / useCallback  (0) 2022.12.10
Comments