io.jsonwebtoken如何處理過(guò)期

小樊
135
2024-06-15 17:11:45

在使用jsonwebtoken時(shí),可以設(shè)置token的過(guò)期時(shí)間,當(dāng)token過(guò)期后,jsonwebtoken會(huì)拋出一個(gè)TokenExpiredError錯(cuò)誤。開(kāi)發(fā)者可以通過(guò)捕獲這個(gè)錯(cuò)誤來(lái)處理過(guò)期的token,例如可以讓用戶(hù)重新登錄以獲取新的token。下面是一個(gè)處理過(guò)期token的示例代碼:

const jwt = require('jsonwebtoken');

// 設(shè)置token過(guò)期時(shí)間
const token = jwt.sign({ user: 'john.doe' }, 'secret', { expiresIn: '1h' });

try {
  const decoded = jwt.verify(token, 'secret');
  // token未過(guò)期,繼續(xù)執(zhí)行相關(guān)操作
} catch (error) {
  if (error instanceof jwt.TokenExpiredError) {
    // token過(guò)期,處理過(guò)期token
    console.log('Token expired');
    // 可以讓用戶(hù)重新登錄獲取新的token
  } else {
    // 其他錯(cuò)誤,如token無(wú)效等
    console.error(error);
  }
}

通過(guò)捕獲TokenExpiredError錯(cuò)誤,開(kāi)發(fā)者可以根據(jù)具體情況來(lái)處理過(guò)期的token。

0