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

OAuth with Azure AD v2.0中expires_in为何不再是3599而是随机值?

相关现象说明与修复方案

你遇到的是Azure AD OAuth 2.0令牌接口的官方正常调整,已有大量开发者碰到完全相同的情况,不属于接口异常。

调整背景

  • 微软于近期逐步全量上线了令牌有效期浮动策略,expires_in返回值不再固定为3599秒(1小时差1秒),而是在3599秒~4320秒(72分钟)区间内随机生成,不同租户、不同请求的返回值都会存在差异,和你侧的请求参数配置无关。

自动化测试修复建议

你的测试逻辑本身不符合OAuth 2.0规范约定:RFC 6749标准从未要求expires_in必须返回固定值,所有依赖该字段为固定值的业务逻辑、测试用例都属于强耦合的错误实现,建议按以下规则调整:

  • 移除硬编码断言expires_in == 3599的逻辑,改为断言expires_in >= 3599 && expires_in <= 4320即可匹配微软当前的有效期规则
  • 更严谨的实现方式是仅校验expires_in为正整数,后续所有令牌过期判断完全依赖该字段的实际返回值,不与任何固定时长绑定

注意:微软后续仍有可能调整有效期的浮动区间,只要接口返回的expires_in为正整数,都属于符合规范的正常返回,不要依赖该字段的具体固定值做逻辑判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:54:01