Skip to content

Commit

Permalink
fix : kakao api, hook
Browse files Browse the repository at this point in the history
  • Loading branch information
sw326 committed Sep 11, 2024
1 parent b3989f8 commit d197d8a
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 18 deletions.
16 changes: 16 additions & 0 deletions src/api/members.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,22 @@ export const login = async (
};
};

export const kakaoLogin = async (code: string): Promise<LoginResponse> => {
const response = await api.post('/members/kakao-login', { code });

const token = response.headers['authorization'];
const refreshToken = response.headers['refresh-token'];

if (!token || !refreshToken) {
throw new Error('Token or refresh token not found in response headers');
}

return {
token: token.replace('Bearer ', ''),
refreshToken: refreshToken.replace('Bearer ', ''),
};
};

export const signup = async (
member: Omit<Member, 'id'> & { password: string },
): Promise<Member> => {
Expand Down
12 changes: 9 additions & 3 deletions src/hooks/useMembers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export const useUpdateMember = () => {
return useMutation<Member, Error, Partial<Member>>({
mutationFn: (updataMember: Partial<Member>) =>
api.updateMember(updataMember),
onSuccess: (data) => {
onSuccess: data => {
queryClient.setQueryData(['currentMember'], data);
queryClient.invalidateQueries({ queryKey: ['currentMember'] });
},
Expand All @@ -41,7 +41,13 @@ export const useDeleteMember = () => {

export const useLogin = () => {
return useMutation<LoginResponse, Error, LoginCredentials>({
mutationFn: (credentials) => api.login(credentials),
mutationFn: credentials => api.login(credentials),
});
};

export const useKakaoLogin = () => {
return useMutation<LoginResponse, Error, string>({
mutationFn: (code: string) => api.kakaoLogin(code),
});
};

Expand All @@ -53,7 +59,7 @@ export const useSignup = () => {

export const useRequestEmailVerification = () => {
return useMutation<void, Error, { email: string }>({
mutationFn: (data) => api.requestEmailVerification(data.email),
mutationFn: data => api.requestEmailVerification(data.email),
});
};

Expand Down
23 changes: 8 additions & 15 deletions src/pages/members/Redirection.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import api from '../../api/axiosConfig';
import { useAuth } from '../../hooks/useAuth';
import { useKakaoLogin } from '../../hooks/useMembers';
import {
handleApiError,
showErrorNotification,
Expand All @@ -12,6 +12,7 @@ const Redirection: React.FC = () => {
const [error, setError] = useState<string | null>(null);
const navigate = useNavigate();
const { login } = useAuth();
const kakaoLoginMutation = useKakaoLogin();

useEffect(() => {
const kakaoLogin = async () => {
Expand All @@ -23,23 +24,15 @@ const Redirection: React.FC = () => {
}

try {
const response = await api.post('/members/kakao-login', { code });
console.log('API Response:', response.data); // 전체 응답 구조 확인
const { accessToken, refreshToken } = response.data;
if (!accessToken || !refreshToken) {
throw new Error('Tokens are missing in the API response');
}
const { token, refreshToken } =
await kakaoLoginMutation.mutateAsync(code);

// 토큰 저장 및 로그인 처리
localStorage.setItem('token', accessToken);
localStorage.setItem('token', token);
localStorage.setItem('refreshToken', refreshToken);
login(accessToken, refreshToken, false);
login(token, refreshToken, false);

console.log('Login successful:', { accessToken, refreshToken });

// 프로필 정보 가져오기
const profileResponse = await api.get('/members/profile');
console.log('Profile Response:', profileResponse.data);
console.log('Login successful:', { token, refreshToken });

navigate('/memberhome');
} catch (error) {
Expand All @@ -53,7 +46,7 @@ const Redirection: React.FC = () => {
};

kakaoLogin();
}, [navigate, login]);
}, [navigate, login, kakaoLoginMutation]);

if (isLoading) {
return (
Expand Down

0 comments on commit d197d8a

Please sign in to comment.