Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 14 additions & 0 deletions src/apis/Auth/dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// 네이버 로그인
export type NaverLoginResponse = LoginResponse;

// 카카오 로그인
export type KakaoLoginResponse = LoginResponse;

// 로그인 공통 응답 인터페이스
export interface LoginResponse {
status: number;
data: {
message: string;
accessToken: string;
};
}
7 changes: 7 additions & 0 deletions src/apis/Auth/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { KakaoLoginResponse, NaverLoginResponse } from './dto';
import { newRequest } from '../core';

export const getKakaoLoginApi = (code: string) => newRequest.get<KakaoLoginResponse>(`/auth/login/kakao?code=${code}`);

export const getNaverLoginApi = (code: string) =>
newRequest.get<NaverLoginResponse>(`/auth/login/naver?code=${code}&state=STATE_TOKEN`);
15 changes: 0 additions & 15 deletions src/apis/User/dto.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
import { BaseApiResponse } from '../util/dto';

// 네이버 로그인
export type NaverLoginResponse = LoginResponse;

// 카카오 로그인
export type KakaoLoginResponse = LoginResponse;

// 회원 탈퇴
export type DeleteUserResponse = BaseApiResponse<DeleteUserResult>;

Expand All @@ -27,15 +21,6 @@ export type UpdateUserResponse = BaseApiResponse<User>;
export type CreateUserBlockRequest = BlockRequest;
export type CreateUserBlockResponse = BaseApiResponse<BlockResult>;

// 로그인 공통 응답 인터페이스
export interface LoginResponse {
status: number;
data: {
message: string;
accessToken: string;
};
}

// 회원 탈퇴 응답 데이터
export interface DeleteUserResult {
message: string;
Expand Down
1 change: 1 addition & 0 deletions src/components/PostItem/dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ export interface Post {

export interface PostItemProps {
post: Post;
isMyPost?: boolean;
}
7 changes: 5 additions & 2 deletions src/components/PostItem/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ import MessageSvg from '../../assets/default/message.svg';
import PinIcon from '../../assets/default/pin.svg';
import { PostItemProps } from './dto';

const PostItem: React.FC<PostItemProps> = ({ post }) => {
const PostItem: React.FC<PostItemProps> = ({ post, isMyPost = true }) => {
const navigate = useNavigate();
const commentsCount = post.commentsCount ?? 0; // 현재 api 응답에 commentsCount가 없어 undefine 오류 해결 위해 설정, 추후 api 수정되면 삭제 해도 되는 행
const imageUrl = post.firstPhoto || 'https://via.placeholder.com/72';

const handleClick = () => {
navigate(`/post/${post.postId}`);
const path = isMyPost ? `/my-post/${post.postId}` : `/post/${post.postId}`;
navigate(path);
};

return (
<PostItemContainer onClick={handleClick}>
<PostImageContainer>
Expand Down
19 changes: 16 additions & 3 deletions src/pages/Login/components/Kakao/KakaoCallback.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
//카카오 인증 완료 후 인증 코드는 승인된 리디렉트 URL로

import React, { useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import axios from 'axios';
import { GetUserInfoResult } from '../../../ProfileViewer/ResponseDto/GetUserInfoResult';
import request from '../../../../apis/core';
import Loading from '../../../../components/Loading';
//import { getKakaoLoginApi } from '../../../../apis/Auth';

const KakaoCallback: React.FC = () => {
const navigate = useNavigate();
Expand All @@ -15,6 +14,20 @@ const KakaoCallback: React.FC = () => {
console.log(code); // 인증 코드 출력

if (code) {
// const getKakaoLogin = async () => {
// try{
// const response = await getKakaoLoginApi(code);
// const statusCode = response.status;
// if (statusCode === 200) {
// const token = response.data.accessToken;
// localStorage.removeItem('jwt_token');
// localStorage.setItem('NEW_JWT_TOKEN', token);
// }
// }
// catch (error) {

// }
// }
// 인증 코드를 쿼리스트링으로 백엔드 서버에 전송
axios
.get(`https://api-dev.oodd.today/auth/login/kakao?code=${code}`)
Expand Down Expand Up @@ -51,7 +64,7 @@ const KakaoCallback: React.FC = () => {
console.error('로그인 실패:', response.data);
alert('카카오 계정의 정보를 불러오지 못했습니다.');
navigate('/login');
// 로그인 실패 시 처리 (예: 오류 페이지로 리디렉션)
// 로그인 실패 시 처리
}
})
.catch((error) => {
Expand Down
5 changes: 3 additions & 2 deletions src/pages/ProfileViewer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,9 @@ const ProfileViewer: React.FC = () => {
</CounterContainer>
<PostListContainer>
{representativePosts.length > 0 &&
representativePosts.map((post) => <PostItem post={post} key={post.postId} />)}
{otherPosts.length > 0 && otherPosts.map((post) => <PostItem key={post.postId} post={post} />)}
representativePosts.map((post) => <PostItem post={post} key={post.postId} isMyPost={false} />)}
{otherPosts.length > 0 &&
otherPosts.map((post) => <PostItem key={post.postId} post={post} isMyPost={false} />)}
</PostListContainer>
{activeBottomSheet === 'main' && (
<BottomSheet
Expand Down