我想根據用戶的不活動自動注銷用戶。我正在嘗試洗掉存盤用戶令牌的 cookie,但這不起作用。你能給我提供更好的解決方案嗎?
uj5u.com熱心網友回復:
您首先需要檢查瀏覽器的空閑狀態。檢測空閑時間請參考這個問題 How to detection idle time in JavaScript 之后,您可以根據需要洗掉cookie。要洗掉 cookie,請點擊此鏈接 https://www.guru99.com/cookies-in-javascript-ultimate-guide.html#:~:text=JavaScript Delete Cookie,expires to a passed date .
uj5u.com熱心網友回復:
您應該首先驗證瀏覽器是否處于不活動狀態,然后您可以根據需要洗掉 cookie。以下庫是可選的,因此這將是有益的:
import { useCookies } from 'react-cookie';
const [cookies, setCookies, removeCookies] = useCookies(['token']);
function checkIdleness() {
var t;
window.onload = timerReset;
window.onmousemove = timerReset;
window.onmousedown = timerReset; // catches touchscreen presses as well
window.ontouchstart = timerReset; // catches touchscreen swipes as well
window.onclick = timerReset; // catches touchpad clicks as well
window.onkeydown = timerReset;
window.addEventListener('scroll', timerReset, true); // improved; see comments
function writeYourFunction() {
// your function for too long inactivity goes here
removeCookies('token', { path: '/' })
}
function timerReset() {
clearTimeout(t);
t = setTimeout(writeYourFunction, 10000); // time is in milliseconds
}
}
checkIdleness();
uj5u.com熱心網友回復:
如果您嘗試洗掉的 cookie 是 httpOnly cookie(這通常是這種情況,也是存盤授權令牌的最佳實踐),您將無法使用客戶端 javascript 洗掉它。相反,您需要向后端發出另一個請求,這可以洗掉 cookie。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/381591.html
標籤:javascript 反应
