Skip to content

Commit 11d3491

Browse files
committed
♻️ refactor : Modify the apiUtils function
- Fixed the tokens on the nest and gin servers to be associated so that requests are sent with the same token - Fix to clear data from intro on logout Related issue: YJU-OKURA#104
1 parent cca93fa commit 11d3491

File tree

3 files changed

+25
-24
lines changed

3 files changed

+25
-24
lines changed

src/api/apiUtils.ts

+15-18
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@ import HTTP_STATUS from './httpStatus';
44

55
const api = axios.create();
66

7-
// api.interceptors.request.use(async config => {
8-
// const token = localStorage.getItem('access_token');
7+
api.interceptors.request.use(async config => {
8+
const token = localStorage.getItem('access_token');
99

10-
// if (token) {
11-
// config.headers.Authorization = `Bearer ${token}`;
12-
// }
13-
// console.log(config);
10+
if (token) {
11+
config.headers.Authorization = `Bearer ${token}`;
12+
}
1413

15-
// return config;
16-
// });
14+
return config;
15+
});
1716

1817
api.interceptors.response.use(
1918
response => {
@@ -24,14 +23,16 @@ api.interceptors.response.use(
2423
// トークンの有効期限が切れていて、トークン更新要求がない場合
2524
if (error.response.status === 401 && !originalRequest._retry) {
2625
originalRequest._retry = true;
27-
const refreshToken = localStorage.getItem('refresh_token');
26+
const body = {
27+
refresh_token: localStorage.getItem('refresh_token'),
28+
};
2829
try {
29-
const res = await axios.post(`${BASE_URLS.gin}/auth/refresh-token`, {
30-
refreshToken,
31-
});
30+
const res = await axios.post(
31+
`${BASE_URLS.gin}/auth/google/refresh-token`,
32+
body
33+
);
3234
if (res.status === 200) {
33-
const newToken = res.data.access_token;
34-
console.log(newToken);
35+
const newToken = res.data.data.access_token;
3536
localStorage.setItem('access_token', newToken);
3637
api.defaults.headers.common['Authorization'] = `Bearer ${newToken}`;
3738
// トークンが更新された後、元のリクエストを再実行
@@ -52,10 +53,6 @@ const req = async (
5253
body: object | undefined = undefined
5354
) => {
5455
api.defaults.baseURL = BASE_URLS[server];
55-
if (server === 'nest') {
56-
api.defaults.headers.common['Authorization'] =
57-
process.env.NEXT_PUBLIC_NEST_TOKEN;
58-
}
5956

6057
if (typeof body !== 'undefined') {
6158
if (body instanceof FormData) {

src/app/intro/page.tsx

+7
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ import {useEffect, useState} from 'react';
33
import Image from 'next/image';
44
import {Login} from './components/login';
55
import intro from '@/public/svgs/intro';
6+
import {useSetRecoilState} from 'recoil';
7+
import userState from '@/src/recoil/atoms/userState';
68

79
const Page = () => {
10+
const setUser = useSetRecoilState(userState);
811
const [isOpen, setIsOpen] = useState(false);
912

1013
const openModal = () => {
@@ -24,6 +27,10 @@ const Page = () => {
2427

2528
useEffect(() => {
2629
document.addEventListener('mousedown', handleOutsideClick);
30+
31+
setUser(null);
32+
localStorage.clear();
33+
2734
return () => {
2835
document.removeEventListener('mousedown', handleOutsideClick);
2936
};

src/components/navbar/profile/Profile.tsx

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import {useState} from 'react';
22
import Image from 'next/image';
3-
import {useSetRecoilState} from 'recoil';
4-
import userState from '@/src/recoil/atoms/userState';
3+
import {useRouter} from 'next/navigation';
54
import EditName from './EditName';
65
import Warning from '../../warning/Warning';
76
import putUserName from '@/src/api/classUser/putUserName';
@@ -11,7 +10,7 @@ import ClassUser from '@/src/model/User';
1110
import icons from '@/public/svgs/navbar';
1211

1312
const Profile = ({user, params}: {user: User; params: ParamsProps}) => {
14-
const setUser = useSetRecoilState(userState);
13+
const router = useRouter();
1514
const [dropdownOpen, setDropdownOpen] = useState<boolean>(false);
1615
const [isEditOpen, setIsEditOpen] = useState<boolean>(false);
1716
const [isOpen, setIsOpen] = useState<boolean>(false);
@@ -32,9 +31,7 @@ const Profile = ({user, params}: {user: User; params: ParamsProps}) => {
3231
};
3332

3433
const handleClickLogout = () => {
35-
setUser(null);
36-
localStorage.clear();
37-
console.log('logout');
34+
router.push('/intro');
3835
};
3936

4037
return (

0 commit comments

Comments
 (0)