본문 바로가기

카테고리 없음

엑세스 키 만료시 작동이 안되는 오류

jwt token 을 이용해서 가져오는 access키와 refresh키는 둘다 시간에 제한이 있기때문에 만료가 되게 되면

토큰을 새롭게 받아와야합니다.

access토큰이 만료되면 refresh 토큰을 이용해서 access토큰을 재발급 받고 refresh토큰이 만료가 되게되면

새롭게 refresh토큰을 받아야 하기때문에 access토큰과 refresh토큰을 새롭게 받기 위해서 

로컬스토리지에 있는 토큰값들을 전부 삭제하고 로그인을 진행해서 새롭게 access토큰과 refresh 토큰을

발급 받아야합니다

async function checkaccess(){
    const response = await fetch('http://127.0.0.1:8000/users/api/token/refresh/', {
        headers: {
            'content-type': "application/json",
        },
        method: 'POST',
        body: JSON.stringify({
            'refresh': localStorage.getItem('refresh')
        }),
    })

해당 코드를 통해서 response에 refresh데이터를 받고나서

    if(!response.ok){
        localStorage.removeItem('access')
        localStorage.removeItem('refresh')
        localStorage.removeItem('payload')
        window.location.href = "/login.html"
    }
    const response_json= await response.json()
    localStorage.setItem('access', response_json.access)
}

만약에 response값이 ok가 아니면 refresh토큰에 문제가 있다고 판단을 하고 로컬스토리지에 있는 토큰들을 삭제합니다

그리고 만약 제대로 값이 받아져왔으면 access키를 로컬스토리지에 저장을 해서 새로운 엑세스키를 받아옵니다!