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

msal.js不同环境下AuthenticationResult返回值不一致,缺少expiresOn属性

从两个环境的/token接口返回结果可以直接定位核心前提:QA环境的令牌请求没有返回access_token,而expiresOn是MSAL库基于Access Token的expires_on字段计算生成的AuthenticationResult属性,at_hash是ID Token中用于绑定对应Access Token的声明,没有Access Token的情况下这两个字段自然缺失。可能的具体原因如下:

  • Scope请求配置错误:核对两个环境的myloginScopes变量取值,QA环境大概率配置了空数组、拼写错误的scope值,或是请求的scope未在QA的ADB2C应用注册中完成授权。ADB2C收到无效/未授权的scope请求时会自动忽略对应scope,最终返回空scope列表且不返回Access Token。
  • ADB2C应用注册配置差异:检查QA环境的应用注册是否已正确暴露API并创建对应的自定义scope,若开发环境已配置对应scope但QA环境漏配,也会导致scope请求失败,无法返回Access Token。
  • 用户流策略配置不一致:即使你认为配置完全一致,仍需单独检查QA环境基础用户流的「令牌」配置页:是否开启了「发出访问令牌」选项,是否在自定义声明配置中裁剪了at_hash、expires_on等默认返回字段。
  • MSAL实例配置差异:核对QA环境的msalConfig配置,重点检查authority是否指向正确的QA租户和用户流、clientId是否为QA环境的应用ID,错误的租户/应用ID配置也会导致令牌请求异常。
  • 测试账号权限问题:确认QA环境测试用的用户账号,是否已被分配对应API的访问权限,无权限的账号请求对应scope时ADB2C不会返回Access Token。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:45:04