1-blue / blegg

๐Ÿ”ฅ ๋ฆฌ๊ทธ์˜ค๋ธŒ๋ ˆ์ „๋“œ ์ „์  ๊ฒ€์ƒ‰ ํ”„๋กœ์ ํŠธ ๐Ÿ”ฅ

Home Page:https://bleshop.shop

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿ” ์ธ์ฆ ๋กœ์ง ๐Ÿ”

1-blue opened this issue ยท comments

๐ŸŽฅ ์˜์ƒ ๐ŸŽฅ

  • ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ
    Image

  • OAuth ๋กœ๊ทธ์ธ
    Image

๐Ÿ“ค FE ๐Ÿ“ค

0๏ธโƒฃ ๊ตฌํ˜„ ์‚ฌํ•ญ

  • SeartchInput ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜์ •
  • Input ์ปดํฌ๋„ŒํŠธ ์ž‘์„ฑ
  • Button ์ปดํฌ๋„ŒํŠธ ์ž‘์„ฑ
  • SignUp ํŽ˜์ด์ง€ ๊ตฌํ˜„
  • SignIn ํŽ˜์ด์ง€ ๊ตฌํ˜„
  • Local, Google, Kakao, Naver ๋กœ๊ทธ์ธ ๊ตฌํ˜„
  • ๋กœ๊ทธ์ธ ์œ ๋ฌด์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง€ ์ ‘๊ทผ ์ œํ•œ ๊ตฌํ˜„
    import { Navigate } from "react-router-dom";
    import { useGetMe } from "@src/query/useGetMe";
    interface Props {
    isAuth: boolean | null;
    }
    /**
    * 2023/06/19 - ์ธ์ฆ ๊ด€๋ จ๋œ ์กฐ๊ฑด ํ™•์ธ HOC - by 1-blue
    * true: ๋กœ๊ทธ์ธํ•œ ์œ ์ €๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
    * false: ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์€ ์œ ์ €๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
    * null: ๋ˆ„๊ตฌ๋‚˜ ์ ‘๊ทผ ๊ฐ€๋Šฅ
    * */
    const AuthenticationCheck: React.FC<React.PropsWithChildren<Props>> = ({
    children,
    isAuth,
    }) => {
    const { me } = useGetMe();
    // ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š๊ณ  ์ ‘๊ทผ
    if (isAuth === true && !me) return <Navigate replace to="/signin" />;
    // ๋กœ๊ทธ์ธํ•˜๊ณ  ์ ‘๊ทผ
    else if (isAuth === false && me) return <Navigate replace to="/" />;
    // ์ ‘๊ทผ ์กฐ๊ฑด์— ๋งŒ์กฑ
    return children;
    };
    export default AuthenticationCheck;

1๏ธโƒฃ ๊ตฌํ˜„ํ•œ ์ปดํฌ๋„ŒํŠธ

๐Ÿ“ฅ BE ๐Ÿ“ฅ

0๏ธโƒฃ ๊ตฌํ˜„ ์‚ฌํ•ญ

  • User ๋ชจ๋ธ ๋ฐ Provider enum ์ž‘์„ฑ
    enum Provider {
    local
    google
    kakao
    naver
    }
    model User {
    idx Int @default(autoincrement()) @id
    id String @db.VarChar(40) @unique
    password String? @db.VarChar(100)
    nickname String @db.VarChar(20) @unique
    summonerName String? @db.VarChar(20) @unique
    avatar String @db.VarChar(100)
    provider Provider @default(local)
    snsId String? @db.VarChar(100)
    }
  • ์ธ์ฆ Module, Controller, Service, Reposigory, guards, dto, interface, strategy ์ž‘์„ฑ
  • Local ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„
  • Local ๋กœ๊ทธ์ธ ๊ตฌํ˜„
  • Google ๋กœ๊ทธ์ธ ๊ตฌํ˜„
  • Kakao ๋กœ๊ทธ์ธ ๊ตฌํ˜„
  • Naver ๋กœ๊ทธ์ธ ๊ตฌํ˜„

๐Ÿ“ฎ ๋ ˆํผ๋Ÿฐ์Šค ๐Ÿ“ฎ

์ƒ์„ธํ•œ ๋กœ์ง์€ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•œ ๋ธ”๋กœ๊ทธ๋“ค์„ ๋ณด๊ณ  ์ž‘์„ฑํ•จ