这是因为localStorage只包含字符串类型的数据,在刷新页面时它们会被清除。为了避免令牌被删除,我们可以将它存储在localStorage中,但同时在localStorage中再存储一个标记,用来判断令牌是否在刷新页面后被保存。具体实现方法如下:
// 存储JWT令牌的函数 function setToken(token) { localStorage.setItem('token', token); localStorage.setItem('token_saved', 'true'); }
// 获取JWT令牌的函数 function getToken() { if (localStorage.getItem('token_saved') === 'true') { return localStorage.getItem('token'); } return null; }
// 清除JWT令牌的函数 function deleteToken() { localStorage.removeItem('token'); localStorage.setItem('token_saved', 'false'); }
这样在刷新页面时,我们可以通过检查localStorage中的'token_saved'标记来判断令牌是否已经被保存,如果已经保存,我们可以将它再次提取出来使用。
下一篇:本地存储在刷新时被重置