javascript - 仅获取存储在 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"}
解决方案
那么只需保存令牌的值而不是对象。
var tokenJson = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJ1c2VybmFtZSI6InJpY2FyZG8uY2Fycm9sYUBnbWFpbC5jb20iLCJleHAiOjE1MzMxMjc1ODksImVtYWlsIjoicmljYXJkby5jYXJyb2xhQGdtYWlsLmNvbSIsIm9yaWdfaWF0IjoxNTMyNTIyNzg5fQ.nYijM4xxFH_Cuoahi-eximAQcQeQ3v1bDRy09ltgDdA";
localStorage.setItem('token', tokenJson);
console.log(localStorage.getItem('token'));
// eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJ1c2VybmFtZSI6InJpY2FyZG8uY2Fycm9sYUBnbWFpbC5jb20iLCJleHAiOjE1MzMxMjc1ODksImVtYWlsIjoicmljYXJkby5jYXJyb2xhQGdtYWlsLmNvbSIsIm9yaWdfaWF0IjoxNTMyNTIyNzg5fQ.nYijM4xxFH_Cuoahi-eximAQcQeQ3v1bDRy09ltgDdA