Avatar

Huy Pham

21/03/2022|1 phút đọc
0
0

Refresh Jwt token với Axios Interceptors

Trong bài viết này, mình sẽ hướng dẫn các bạn sử dụng Axios Interceptors để tự động làm mới access token từ refresh token trong jwt.

jwt.svg

1. Axios Interceptors.

Axios Interceptors như một bác bảo vệ, chặn các requestresponse, cho phép bạn xử lý lỗi, config request headers như gắn token vào request, xử lý params,...

2. Setup axios client, dùng axios interceptors để refresh token.

Trước tiên, bạn cần cài đặt axios, jwt-decode (để decode jwt token của bạn) với câu lệnh sau: yarn add axios jwt-decode

import axios from 'axios'
import jwt_decode from 'jwt-decode'

const axiosClient = axios.create({
    baseURL: 'api url của bạn'
    headers: {
    'Content-Type': 'application/json',
    },
    withCredentials: true, // Để request gửi kèm cookie
})

axiosClient.interceptors.request.use(async (config) => {
  let accessToken = localStorage.getItem('accessToken') 

  if(accessToken) {
    const decodedToken = jwt_decode(token)
    if(decodedToken.exp * 1000 < new Date().getTime()) {
      accessToken  = await refreshToken()
      localStorage.setItem('accessToken', accessToken )
      
    }
    config.headers.Authorization = 'Bearer ' + accessToken 
  }
  
  return config
}

Tạm kết

Trên đây là cách sử dụng Axios Interceptors để làm mới jwt token, khá đơn giản đúng không nào ? Mong bài viết này sẽ hữu ích với bạn. Cảm ơn bạn đã đọc bài viết <3.

0Bình luận

Bài viết liên quan

thumbnail
avatar

Huy Pham

21/03/2022|3 phút đọc

Custom hooks là gì ? Xây dựng hook useWindowSize và useDebounce trong ReactJS.

Khi làm việc với ReactJS chắc hẳn bạn không còn xa lạ với các hooks như useState, useRef, useEffect,… Ngoài các hooks có sẵn, bạn ...

thumbnail
avatar

Huy Pham

22/03/2022|2 phút đọc

Cài đặt Tailwind CSS cho dự án NextJS

Trong bài viết này, chúng ta hãy cùng tìm hiểu cách để sử dụng Tailwind CSS cho dự án NextJS, một sự kết hợp tuyệt vời.

thumbnail
avatar

Huy Pham

23/03/2022|2 phút đọc

Xây dựng một Infinite Scroll Component với React Hooks

khi sử dụng các trang web, đặc biệt là mạng xã hội, có lẽ các bạn đã không ít lần nhìn thấy họ sử dụng kỹ thuật Infinite Scroll (c...

author

Huy Pham

Software Engineer

Insanity is doing the same thing, over and over again, but expecting different results.

Các thẻ đề xuất