export const isAuthenticated = () =>
{ if (typeof window == 'undefined') {
return false; }
if (localStorage.getItem('jwt')) {
return JSON.parse(localStorage.getItem('jwt')); }
else { return false; }
};
我在前端使用React JS,在后端使用Node JS。这是关于后端的错误吗?
答案 0 :(得分:1)
这是因为它无法在_id
对象中找到user
。因此,您可以这样做以确保已经有user
个对象
<Link
to={`users/${isAuthenticated().user && isAuthenticated().user._id}`}
>
答案 1 :(得分:-1)
为什么要调用isAuthenticated()。user._id,从我的代码中可以看到,isAuthenticated()返回的令牌不是user,而jwt令牌不包含_id属性。
我认为您要执行的操作或应该执行的操作是获取令牌,然后对其进行解码并获取有效负载,其中可能包含_id属性的用户对象。
您可以使用jwt-decode包对令牌进行解码
export const isAuthenticated = () =>
{ if (typeof window == 'undefined') {
return false; }
if (localStorage.getItem('jwt')) {
const token = JSON.parse(localStorage.getItem('jwt'));
const decoded: any = decode(token);
return decoded.user._id
}
else { return false; }
};