JWT토큰을 이용하여 로그인 기능을 구현하게 되면 인가가 필요한 요청 시에 헤더에 액세스 토큰을 탑재
해야 한다.
axios의 defaults.headers.commom를 이용하여 편리하게 액세스 토큰을 탑재
할 수 있다.
import axios from 'axios';
axios.defaults.headers.common['Authorization'] = `Bearer ${accessToken}`
위의 코드에서 accessToken에 해당하는 값만 상황에 맞게 적용해주면 된다.
다음과 같은 코드를 추가하면 이후 axios의 모든 요청에 액세스토큰이 헤더에 탑재된다.
import axios from 'axios';
const getAccessToken = () => {
axios.get(`${엔드포인트}`)
.then((res) => {
axios.defaults.headers.common['Authorization'] = `Bearer ${res.data.accessToken}`
})
};
⇒ 액세스 토큰이 메모리상에 저장되어 탈취될 위험이 적어진다고 알고있다.
import axios from 'axios';
const getAccessToken = () => {
const refreshToken = localStorage.getItem('refreshToken');
axios.get(`엔드포인트`, {
headers: {"Authorization": `Bearer ${refreshToken}`}
})
.then((res) => {
axios.defaults.headers.common['Authorization'] = `Bearer ${res.data.accessToken}`
});
};
⇒ 프로젝트에 리프레쉬 토큰을 적용하였을 경우이다. 액세스 토큰을 발급받아 axios 헤더에 적용한다.