亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JWT 中的刷新和訪問令牌流

JWT 中的刷新和訪問令牌流

慕勒3428872 2022-12-22 10:10:12
我開發了一個標準的 JWT 系統,可以登錄并發布訪問令牌和刷新令牌。訪問令牌在短時間后過期,并且有刷新令牌的路徑。我axios過去常常提出請求,但我不確定如何處理過期的令牌。例如,如果我/secret_route使用我的訪問令牌發出請求并且它已過期,我是否需要等待 a403然后發出請求/refresh_token然后再次發出原始請求?從編程的角度來看似乎很混亂,并且在網絡上相當浪費。有沒有一種有效/優雅的方法來做到這一點?
查看完整描述

1 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

我最終得到了一個我認為比檢查時間戳更可靠的解決方案。謝謝@Bergi,但我擔心系統時鐘。我使用 axios 攔截器刷新 401 上的令牌


  // Request interceptor for API calls

  axios.interceptors.request.use(

    async config => {

      config.headers = { 

        'Authorization': `Bearer ${localStorage.getItem("accessToken")}`,

        'Accept': 'application/json',

      }

      return config;

    },

    error => {

      Promise.reject(error)

  });


  // Allow automatic updating of access token

  axios.interceptors.response.use(response => response, async (error) => {

    const originalRequest = error.config;

    if (error.response.status === 401 && !originalRequest._retry) {

      originalRequest._retry = true;

      const res = await axios.post('/users/token', { token: localStorage.getItem('refreshToken') });

      setToken(res.data.accessToken);


      return axios.request(originalRequest);

    }

    return Promise.reject(error);

  });

改編自https://thedutchlab.com/blog/using-axios-interceptors-for-refreshing-your-api-token


查看完整回答
反對 回復 2022-12-22
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號