• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Vue, jwt refresh token

Object Storage Arubacloud
0 głosów
365 wizyt
pytanie zadane 20 maja 2020 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)
Cześć,

mam pytanie odnośnie odświeżania tokenu jwt w vue.js Sam token mam ustawiony czas życia na 24h, po tym czasie token wygasa jednak po stronie front'u nic się nie dzieje. Mam też endpoint który służy do odświeżania tokena. Chciałbym aby kiedy token wygasa token podjął próbę odświeżenia a jeśli ona się nie powiedzie usunął token z localStorage

1 odpowiedź

0 głosów
odpowiedź 20 maja 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
No dobra masz kilka wyjść ale najpopularniejsze to trzymanie na FE czasu trwania tokenu np w localStore i wolanei endpointa kiedy czas się skończy. Inną opcją którą ja polecam jest korzystanie np z biblioteki axios w celu komunikacji z serwerem. W axiosie możesz zaimplementować interceptor, który po wyłapaniu błędu o wygaśnięciu tokenu wyśle zapytanie o nowy token.
komentarz 21 maja 2020 przez mi-20 Stary wyjadacz (13,190 p.)

właśnie używam axios, dodałem prosty interceptor

let jwtToken = localStorage.getItem('token');
if (jwtToken){
  setHeaderToken();
  axios.interceptors.response.use(function (response) {
    return response;
  }, function (error) {
    if (error.response.status === 401) {
      refreshToken();
    }
  })
  if (localStorage.getItem('token') === undefined) {
    localStorage.removeItem('token');
    localStorage.removeItem('userId');
    localStorage.removeItem('darkMode');
    window.location.reload();
  }
}

function setHeaderToken() {
  axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('token');
}

function refreshToken() {
  axios.post('refresh-token')
    .then((data) => {
      localStorage.setItem('token', data.data.access_token);
      setHeaderToken();
    })
    .catch(() => {
      localStorage.removeItem('token');
      localStorage.removeItem('userId');
      return this.$router.push({path: '/'});
    })
}

ale nie do końca to działa :/

komentarz 21 maja 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

Nie wiem co tam masz nie tak ponieważ nie mam twojego API. powstawiaj sobie consol.logi i debuguj co jest nie tak. Ja używam quasara (framework do vue) i tam mam taki fragment

export default ({Vue, router}) => {
  Vue.prototype.$axios = axios
  axios.defaults.baseURL = process.env.API;

  axios.interceptors.response.use(function (response) {
    return response
  }, function (error) {
    const errorCode = error.response.status;
    if (errorCode === 401 || errorCode === 403) {
      localStorage.removeItem('accessToken');
      router.push('/login');
    }
    return Promise.reject(error)
  })
}

 

Podobne pytania

0 głosów
1 odpowiedź 350 wizyt
pytanie zadane 21 października 2018 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)
+1 głos
1 odpowiedź 190 wizyt
pytanie zadane 12 listopada 2020 w JavaScript przez LixI Nowicjusz (130 p.)
0 głosów
1 odpowiedź 302 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...