首页 > 解决方案 > 仅获取存储在 localStorage 中的项目的值

问题描述

我想从我保存在 localStorage 中的值中获取值,但我也获取存储的密钥的名称。

localStorage.setItem('token', tokenJson);
console.log(JSON.parse(localStorage.getItem('token')));

console.log 返回类似的东西,{"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJ1c2VybmFtZSI6InJpY2FyZG8uY2Fycm9sYUBnbWFpbC5jb20iLCJleHAiOjE1MzMxMjc1ODksImVtYWlsIjoicmljYXJkby5jYXJyb2xhQGdtYWlsLmNvbSIsIm9yaWdfaWF0IjoxNTMyNTIyNzg5fQ.nYijM4xxFH_Cuoahi-eximAQcQeQ3v1bDRy09ltgDdA"}但我只想要冒号后面不带引号的内容。我不知道是否清楚,但我需要令牌,只需要它的值来进行获取以进行 API 调用。

我想要的是,当我提出请求时,答案是这样的:

JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJ1c2VybmFtZSI6InJpY2FyZG8uY2Fycm9sYUBnbWFpbC5jb20iLCJleHAiOjE1MzMxMjc1ODMsImVtYWlsIjoicmljYXJkby5jYXJyb2xhQGdtYWlsLmNvbSIsIm9yaWdfaWF0IjoxNTMyNTIyNzgzfQ.NMTLQCalo9UMMtJXUq7ynzpUbL3m3rjumMw9unoZhtc

而不是这样

JWT {"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJ1c2VybmFtZSI6InJpY2FyZG8uY2Fycm9sYUBnbWFpbC5jb20iLCJleHAiOjE1MzMxMjc1ODMsImVtYWlsIjoicmljYXJkby5jYXJyb2xhQGdtYWlsLmNvbSIsIm9yaWdfaWF0IjoxNTMyNTIyNzgzfQ.NMTLQCalo9UMMtJXUq7ynzpUbL3m3rjumMw9unoZhtc"}

标签: javascriptreactjs

解决方案


那么只需保存令牌的值而不是对象。

var tokenJson = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJ1c2VybmFtZSI6InJpY2FyZG8uY2Fycm9sYUBnbWFpbC5jb20iLCJleHAiOjE1MzMxMjc1ODksImVtYWlsIjoicmljYXJkby5jYXJyb2xhQGdtYWlsLmNvbSIsIm9yaWdfaWF0IjoxNTMyNTIyNzg5fQ.nYijM4xxFH_Cuoahi-eximAQcQeQ3v1bDRy09ltgDdA";

localStorage.setItem('token', tokenJson);
console.log(localStorage.getItem('token'));

// eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJ1c2VybmFtZSI6InJpY2FyZG8uY2Fycm9sYUBnbWFpbC5jb20iLCJleHAiOjE1MzMxMjc1ODksImVtYWlsIjoicmljYXJkby5jYXJyb2xhQGdtYWlsLmNvbSIsIm9yaWdfaWF0IjoxNTMyNTIyNzg5fQ.nYijM4xxFH_Cuoahi-eximAQcQeQ3v1bDRy09ltgDdA

推荐阅读