You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JavaScript获取localStorage中的access_token值而非id_token?

修复获取access_token值的方案

问题分析

你更新后的代码通过Object.keys()[2]仅拿到了对象的第3个键名(对象键的顺序不固定,甚至可能不是access_token),而且没有根据键名去获取对应的值,所以无法拿到目标token。

正确实现代码

// 读取并解析localStorage中的OIDC用户对象
const oidcUser = JSON.parse(localStorage.getItem('oidc.user:https://accounts.zerotier.com/auth/realms/zerotier:zt-central'));

// 直接通过标准键名获取access_token
if (oidcUser?.access_token) {
  alert(oidcUser.access_token);
} else {
  alert('未获取到access_token');
}

关键说明

  • 不要依赖对象键的索引位置:OIDC存储对象的键顺序不保证固定,用索引取键名完全不可靠。
  • 直接使用标准键名:OIDC规范中,存储的用户对象里access_token是固定的键名,直接通过该键访问值才是稳定的方式。
  • 增加空值判断:避免存储项不存在或access_token未生成时出现JS报错。

内容的提问来源于stack exchange,提问作者asda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:00:58