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

调用\.auth\refresh端点后Azure App Service认证令牌未刷新问题咨询

问题根因

该问题本质是多实例场景下令牌存储的分布式一致性问题。你当前采用的文件系统令牌存储属于实例本地存储,多个实例之间数据不互通:

  • 刷新令牌请求被路由到实例A时,只有实例A的本地文件系统会更新存储的有效access token
  • 后续调用/.auth/me的请求被路由到其他实例时,其他实例本地仍存储着旧的过期令牌,因此返回过期数据,最终导致API调用返回401 Unauthorized
    单实例运行、开启ARR亲和性时所有用户请求都会落到同一个实例,自然不会触发该问题。
解决方案

方案1:更换分布式令牌存储(推荐,彻底解决问题)

Azure App Service认证原生支持将令牌存储在Azure Blob存储中,实现多实例之间的令牌数据共享,无需依赖ARR亲和性,配置步骤如下:

  • 准备一个通用v2存储账户,在账户中新建一个私有Blob容器用于存储令牌
  • 分别打开Angular前端、ASP.NET Core API对应的App Service配置页,找到「身份验证」配置项
  • 找到「令牌存储」相关设置,关闭默认的文件系统存储,选择关联你准备好的Blob存储账户和容器
  • 给两个App Service的托管身份授予存储容器的「存储Blob数据贡献者」权限,避免存储访问异常
  • 保存配置后重启两个App Service即可生效

方案2:优化令牌获取逻辑(临时 workaround)

Azure App Service的/.auth/refresh接口调用成功后,响应体本身会直接返回刷新后的access_token、expires_on等字段,你可以直接读取该响应结果获取新令牌,跳过后续调用/.auth/me获取令牌的步骤,可规避本次场景下的存储一致性问题。该方案无需修改App Service配置,但没有从根本解决多实例令牌不一致的问题,其他依赖令牌存储的功能仍可能出现异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:27:00