Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
8deca4a
refactor: 이미지 코드 리펙토링
YongLeeCode Nov 13, 2024
95bbdcf
feat: 유저 타입 정리
YongLeeCode Nov 19, 2024
057d499
refactor: 업데이트 패키지 버전
YongLeeCode Nov 19, 2024
bf8b004
refactor: 유저 api 분리
YongLeeCode Nov 19, 2024
074cc53
refactor: 인스턴스 변화로 인한 코드 변경
YongLeeCode Nov 19, 2024
1b67fb3
refactor: 인스턴스 변화로 인한 코드 변경
YongLeeCode Nov 19, 2024
85cffa8
refactor: 로그인폼 컴포넌트 생성
YongLeeCode Nov 19, 2024
6c856a7
refactor: 회원가입폼 컴포넌트 생성
YongLeeCode Nov 19, 2024
a5714e7
refactor: api 파일 리펙토링
YongLeeCode Nov 19, 2024
d241631
feat: 상태관리 리액트 쿼리 사용
YongLeeCode Nov 19, 2024
1949469
refactor: 버그 수정
YongLeeCode Nov 19, 2024
5e84392
refactor: 이미지 코드 리펙토링
YongLeeCode Nov 13, 2024
e6577bb
refactor: 버그 수정
YongLeeCode Nov 19, 2024
1f006ca
refactor: refreshToken이 없을 때 지난 accessToken 로컬에서 삭제
YongLeeCode Nov 20, 2024
5e92821
refactor: 400 에러 상황 시 로컬에 있는 accessToken 제거
YongLeeCode Nov 20, 2024
5325e62
feat: 개인정보처리방침 페이지 생성
YongLeeCode Nov 21, 2024
d60ca89
feat: 이용약관 페이지 생성
YongLeeCode Nov 21, 2024
a2cde6b
refactor: 폴더 이름 변경
YongLeeCode Nov 21, 2024
2810e15
refactor: 사용되지 않는 파일 제거
YongLeeCode Nov 21, 2024
fcbb88d
feat: 소셜로그인을 위한 로고 추가
YongLeeCode Nov 21, 2024
fffe833
refactor: 로그인의 케러셀의 정보 constants폴더로 이동
YongLeeCode Nov 21, 2024
80b7445
refactor: 인터셉터에 있던 토스트 제거
YongLeeCode Nov 21, 2024
e91f2c5
refactor: 유저 정보 수정 간 기존에 쓰던 닉네임 그대로 사용할 수 있게 수정
YongLeeCode Nov 21, 2024
82abdaa
refactor: 닉네임 스페이스 사용 허용으로 변경
YongLeeCode Nov 21, 2024
07afacf
refactor: 폴더,파일 네이밍 변경 및 리팩토링
YongLeeCode Nov 21, 2024
c7df5ca
feat: 소셜 로그인 기능 구현
YongLeeCode Nov 21, 2024
01e92c4
refactor: 리팩토링으로 인한 코드 수정
YongLeeCode Nov 21, 2024
db87c24
refactor: 회원정보 수정 일부 버그 수정
YongLeeCode Nov 21, 2024
f37922f
feat: 소셜로그인 페이지 구현
YongLeeCode Nov 21, 2024
03b0197
Merge branch 'dev' into page-login
YongLeeCode Nov 21, 2024
3c2d243
refactor: 레이아웃 버그로 인해 재복구
YongLeeCode Nov 21, 2024
9687acf
refactor: 배포 중 에러로 인한 폴더 이름 복구
YongLeeCode Nov 21, 2024
927ee5d
Merge branch 'dev' into page-login
YongLeeCode Nov 21, 2024
570a1b7
refactor: 로그인 후 회원정보 못 가져오는 현상 해결
YongLeeCode Nov 22, 2024
faa2860
refactor: 소셜 토큰 쿼리 적용
YongLeeCode Nov 22, 2024
7812f47
Merge branch 'dev' into page-login
YongLeeCode Nov 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/apis/user/getUser.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ export const getUserInfo = async () => {
};

// eslint-disable-next-line consistent-return
export const getSocialAccess = async (social: string, code: string) => {
export const getSocialAccess = async (code: string) => {
const social = sessionStorage.getItem('social');
try {
const res = await instanceWithoutAccess.get(`/login/oauth2/callback/${social}?code=${code}`);
const accessToken = res.headers.authorization as string;
Expand Down
56 changes: 25 additions & 31 deletions src/pages/oauth/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,51 +19,45 @@ export default function OAuth() {
const userUpdate = userStore((state) => state.updateUser);
const isLoggedIn = userStore((state) => state.isLoggedIn);

const { data, refetch } = useQuery({
const { data: userInfo, refetch } = useQuery({
queryKey: ['queryUserInfo'],
queryFn: getUserInfo,
staleTime: 1000 * 60 * 5,
gcTime: 1000 * 60 * 6,
});

useEffect(() => {
async function handleOAuth() {
if (!code) return;

const social = sessionStorage.getItem('social');
try {
if (!social) {
throw new Error('Social is null');
}
const result = await getSocialAccess(social, code as string);
if (result) {
loginStore();
} else if (!result) {
Toast('error', '서버에 문제가 있습니다. 새로고침 후 다시 시도해주세요.');
await routerInternal.push('/login');
}
} catch (error) {
Toast('error', '새로고침 후 다시 시도해주세요.');
void routerInternal.push('/login');
console.log(error);
}
const { data: socialCode } = useQuery({
queryKey: ['querySocialAccess'],
queryFn: () => getSocialAccess(code as string),
});

const saveSocialCode = useCallback(() => {
if (socialCode) {
loginStore();
} else {
Toast('error', '새로고침 후 다시 시도해주세요.');
void routerInternal.push('/login');
}
}, [loginStore, routerInternal, socialCode]);

useEffect(() => {
if (!code) return;

void handleOAuth();
}, [code, loginStore, routerInternal]);
saveSocialCode();
}, [code, saveSocialCode]);

const saveUserInfo = useCallback(() => {
void refetch();
console.log('refetch is called');
userUpdate({
email: data?.res?.email || '',
id: data?.res?.id || '',
image: data?.res?.image || '/images/together-findpage-large.png',
name: data?.res?.name || '',
createdAt: data?.res?.createdAt ? formatDate(data?.res.createdAt) : '',
email: userInfo?.res?.email || '',
id: userInfo?.res?.id || '',
image: userInfo?.res?.image || '/images/together-findpage-large.png',
name: userInfo?.res?.name || '',
createdAt: userInfo?.res?.createdAt ? formatDate(userInfo?.res.createdAt) : '',
});
Toast('success', '로그인 성공');
void router.push('/main');
}, [refetch, userUpdate, data?.res?.email, data?.res?.id, data?.res?.image, data?.res?.name, data?.res?.createdAt, router]);
}, [refetch, userUpdate, userInfo?.res?.email, userInfo?.res?.id, userInfo?.res?.image, userInfo?.res?.name, userInfo?.res?.createdAt, router]);

useEffect(() => {
if (isLoggedIn) {
Expand Down