Skip to content

Commit

Permalink
Merge pull request #16 from TripInfoWeb/dev_auth
Browse files Browse the repository at this point in the history
fix: fetchWithAuth 코드를 잘못 적용하고 있어서 수정 및 401에러에 대한 재요청 로직 적용
  • Loading branch information
ssssksss authored Sep 2, 2024
2 parents 2a402fd + 0fa7f65 commit 7b51629
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 14 deletions.
3 changes: 1 addition & 2 deletions src/app/api/auth/logout/route.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import { fetchWithAuth } from "@/utils/fetchWithAuth";
import { cookies } from "next/headers";
import { NextRequest, NextResponse } from "next/server";

export async function GET(request: NextRequest) {
try {
const access_cookie = request.cookies.get("access_token");
// 사용자 정보 조회 API
await fetchWithAuth(`${process.env.BACKEND_URL}/api/auth/oauth2/logout`, {
await fetch(`${process.env.BACKEND_URL}/api/auth/oauth2/logout`, {
method: "POST",
headers: {
Cookie: `${access_cookie?.name}=${access_cookie?.value}`,
Expand Down
3 changes: 1 addition & 2 deletions src/app/api/auth/refresh-access-token/route.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { NextRequest, NextResponse } from "next/server";

export async function GET(request: NextRequest) {
export async function POST(request: NextRequest) {
try {
const cookie = request.cookies.get("refresh_token");
if (!cookie) {
Expand Down Expand Up @@ -29,7 +29,6 @@ export async function GET(request: NextRequest) {
}
return result;
} catch (error) {
console.error(error);
return new NextResponse("살려줘" , { status: 500 });
}
}
3 changes: 1 addition & 2 deletions src/app/api/auth/users/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { fetchWithAuth } from "@/utils/fetchWithAuth";
import UrlQueryStringToObject from "@/utils/UrlQueryStringToObject";
import { NextRequest, NextResponse } from "next/server";

Expand All @@ -17,7 +16,7 @@ export async function GET(request: NextRequest) {
nickname: string,
} | undefined = UrlQueryStringToObject(request.url)
// 사용자 정보 조회 API
const response = await fetchWithAuth(`${process.env.BACKEND_URL}/api/admin/user/list?page=${params?.page}&nickname=${params?.nickname}`, {
const response = await fetch(`${process.env.BACKEND_URL}/api/admin/user/list?page=${params?.page}&nickname=${params?.nickname}`, {
method: "GET",
headers: {
Cookie: `${access_cookie?.name}=${access_cookie?.value}`,
Expand Down
9 changes: 2 additions & 7 deletions src/app/api/information/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { fetchWithAuth } from "@/utils/fetchWithAuth";
import UrlQueryStringToObject from "@/utils/UrlQueryStringToObject";
import { NextRequest, NextResponse } from "next/server";

Expand All @@ -17,7 +16,7 @@ export async function GET(request: NextRequest) {
nickname: string,
} | undefined = UrlQueryStringToObject(request.url)
// 사용자 정보 조회 API
const response = await fetchWithAuth(
const response = await fetch(
`${process.env.BACKEND_URL}/api/admin/information/list?page=${params?.page}&nickname=${params?.nickname}`,
{
method: "GET",
Expand All @@ -29,11 +28,7 @@ export async function GET(request: NextRequest) {
},
);

const data = await response.json();
return new NextResponse(JSON.stringify(data), {
status: 200,
headers: { "Content-Type": "application/json" },
});
return response;
} catch (error) {
return new NextResponse("Internal Server Error", { status: 500 });
}
Expand Down
3 changes: 2 additions & 1 deletion src/containers/support/qna/SupportQnAListContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import Pagination from "@/components/Pagination/Pagination";
import QnAResponseModal from "@/components/support/qna/QnAResponseModal";
import SupportQnAList from "@/components/support/qna/SupportQnAList";
import useModalState from "@/hooks/useModalState";
import { fetchWithAuth } from "@/utils/fetchWithAuth";
import { useSearchParams } from "next/navigation";
import { useEffect, useState } from "react";

Expand Down Expand Up @@ -37,7 +38,7 @@ const SupportQnAListContainer = () => {
const modalState = useModalState();
const fetchQnAList = async () => {
const url = `/api/qna?page=${currentPage}&status=${status}&keyword=${keyword}`;
const response = await fetch(url, {
const response = await fetchWithAuth(url, {
method: "GET",
headers: {
"Content-Type": "application/json",
Expand Down
6 changes: 6 additions & 0 deletions src/utils/fetchWithAuth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ export async function fetchWithAuth(url: string, options = {}, retries = 1) {
// 토큰 갱신
const data = await fetch(
`/api/auth/refresh-access-token`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
},
);
if (data.status == 401) {
return Promise.reject({
Expand Down

0 comments on commit 7b51629

Please sign in to comment.