【发布时间】:2022-01-02 20:21:30
【问题描述】:
我有一个token 存储在localStorage 中,我还有一个方法可以验证令牌是否正确,如您在此代码中所见:
let token = localStorage.getItem('token');
console.log(token);
if ( !token )
{
return null;
}
const parts = token.split('.');
if ( parts.length !== 3 )
{
throw new Error('error');
}
....
如果token是undefined我会返回null,否则继续验证。
有两个问题我看不懂:
- 为什么我在刷新页面时丢失了 localStorage 中的令牌
- 为什么
token为undefined时if ( !token )返回false,第一个console.log返回undefined,但我的方法继续const parts = token.split('.');。
【问题讨论】:
-
您的代码 sn-p 中没有本地存储的迹象。
-
请检查您是否没有将
undefined字符串存储为localStorage 的值???? -
您应该考虑默认验证“失败”。并且只有通过验证才能成功。
-
而且您不应该将令牌存储在本地存储中。这是一个安全问题。
-
@Ashish no 我将令牌存储在本地存储中,当我不刷新页面时令牌被正确记录,但是当我刷新页面时我得到未定义
标签: javascript angular typescript undefined