- 发布:2026-05-05 20:24
- 更新:43 分钟前
- 阅读:31
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 5.08
浏览器平台: Edge
浏览器版本: 最新
项目创建方式: HBuilderX
操作步骤:
预期结果:
我查询的结构就是生成的token不符合atob的新规范,所有atob报错
我查询的结构就是生成的token不符合atob的新规范,所有atob报错
实际结果:
vue.runtime.esm.js? [sm]:1480 Error: 获取当前用户信息出错,详细错误信息为:Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
vue.runtime.esm.js? [sm]:1480 Error: 获取当前用户信息出错,详细错误信息为:Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
bug描述:
uni-starter遇到这个问题,登录不成功,报vue.runtime.esm.js? [sm]:1480 Error: 获取当前用户信息出错,详细错误信息为:Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.错误。
我发现是uni-id-users数据库里的token是下面这种:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2OWY5NzliYThlNjQwMzJhMTNlZDUzYzMiLCJyb2xlIjpbIlhJQU9CVUtFVEFOR19VU0VSIl0sInBlcm1pc3Npb24iOlsiWElBT0JVS0VUQU5HX0RFVklDRV9MSVNUPFJFQUQ-IiwiWElBT0JVS0VUQU5HX0RFVklDRV9MSVNUPENSRUFURT4iLCJYSUFPQlVLRVRBTkdfREVWSUNFX0xJU1Q8VVBEQVRFPiIsIlhJQU9CVUtFVEFOR19ERVZJQ0VfTElTVDxERUxFVEU-IiwiWElBT0JVS0VUQU5HX1VTRVJfUEVSTUlTU0lPTlM8UkVBRD4iLCJYSUFPQlVLRVRBTkdfVVNFUl9QRVJNSVNTSU9OUzxDUkVBVEU-IiwiWElBT0JVS0VUQU5HX1VTRVJfUEVSTUlTU0lPTlM8VVBEQVRFPiIsIlhJQU9CVUtFVEFOR19VU0VSX1BFUk1JU1NJT05TPERFTEVURT4iXSwidW5pSWRWZXJzaW9uIjoiMS4wLjE5IiwiaWF0IjoxNzc3OTgxMTg3LCJleHAiOjE3Nzc5ODgzODd9.1qfZnjk1kygVt12fMePf5pX6ObrkvaCrRs3k4W7_i0Q
这种token在atob解析错误。
但是刷新后,localstorage里的token又变成:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2OWY5NzliYThlNjQwMzJhMTNlZDUzYzMiLCJyb2xlIjpbIlhJQU9CVUtFVEFOR19VU0VSIl0sInBlcm1pc3Npb24iOlsiWElBT0JVS0VUQU5HX0RFVklDRV9MSVNUPFJFQUQ+IiwiWElBT0JVS0VUQU5HX0RFVklDRV9MSVNUPENSRUFURT4iLCJYSUFPQlVLRVRBTkdfREVWSUNFX0xJU1Q8VVBEQVRFPiIsIlhJQU9CVUtFVEFOR19ERVZJQ0VfTElTVDxERUxFVEU+IiwiWElBT0JVS0VUQU5HX1VTRVJfUEVSTUlTU0lPTlM8UkVBRD4iLCJYSUFPQlVLRVRBTkdfVVNFUl9QRVJNSVNTSU9OUzxDUkVBVEU+IiwiWElBT0JVS0VUQU5HX1VTRVJfUEVSTUlTU0lPTlM8VVBEQVRFPiIsIlhJQU9CVUtFVEFOR19VU0VSX1BFUk1JU1NJT05TPERFTEVURT4iXSwidW5pSWRWZXJzaW9uIjoiMS4wLjE5IiwiaWF0IjoxNzc3OTgxMTg3LCJleHAiOjE3Nzc5ODgzODd9.1qfZnjk1kygVt12fMePf5pX6ObrkvaCrRs3k4W7/i0Q
这种是正确的token,可以解析。但是与uni-id-users里的token不同。token校验失败。
这是什么原因?是bug吗?
6 个回复
Ask小助手
作为DCloud官方人员,我对该bug反馈的评审如下:
一、反馈内容完整性评价
整体评价:中等偏上,关键信息有缺失
1. BUG描述分析
_vs/),这是定位问题的关键线索Failed to execute 'atob' on 'Window'看应该是H5或Web环境,但需明确确认2. 代码示例缺失
getCurrentUserInfo()的具体代码片段,也没有提供生成token的相关代码3. 复现步骤不清晰
4. 环境信息
二、Bug有效性判断
初步判断:这是一个有效的潜在Bug,但可能是已知问题的变体
根据知识库检索结果:
历史类似问题:
atob is not a function问题,已在后续版本修复当前问题特征:
Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded,而非atob is not a functionatob函数存在,但传入的字符串编码不符合标准Base64规范Root Cause分析:
用户发现的token差异(
_vs/)揭示了问题本质:_和-代替标准Base64的/和+)atob函数要求的是标准Base64编码(需要/和+)atob时,就会报编码错误根据uni-id Token文档,token是JWT格式,理论上应该统一使用Base64URL编码,但
getCurrentUserInfo内部在解析时可能需要做编码转换。三、建议与要求
立即需要补充的信息:
getCurrentUserInfo()的代码,以及是否直接操作了token存储uni-id或uni-id-common的具体版本号临时解决方案建议:
根据知识库client-sdk文档,
getCurrentUserInfo是客户端接口,不会发送网络请求,仅解析storage内的uni_id_token。建议检查:官方后续动作:
我们怀疑这是
uni-id在特定版本(HBuilderX 5.08)中,token编码格式处理的问题。请补充上述信息后,我们将进行进一步验证。如果确认是框架问题,将在下个版本修复Base64URL到Base64的自动转换逻辑。请优先补充:运行平台和完整的复现操作步骤。
阿歪绅士 (作者)
刚刚新下载了uni-starter。没有任何修改,只添加 "tokenSecret": "dsfgsdfgsdg",和 "userRegisterDefaultRole": ["XIAOBUKETANG_USER"]。只做了这两处设置。
阿歪绅士 (作者)
新注册用户。自动返回list页,再打开ucenter页还是未登录的状态。
阿歪绅士 (作者)
uni-id-common版本1.0.19
uni-id-pages版1.1.27
在hbuilder里运行再内部浏览器里。H5
阿歪绅士 (作者)
HBuilder版本5.0.7
阿歪绅士 (作者)
我发现是支付宝云才会出现这个token问题。阿里云没有问题。应该支付宝云的uni-id-common生成token的问题
要回复问题请先登录或注册
公告
更多>相关问题