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

何时及为何使用acquireTokenByRefreshToken而非重复调用初始acquireToken?

何时及为何使用acquireToken的刷新形式(如acquireTokenByRefreshToken)

好问题!这其实戳中了OAuth2.0和Azure AD令牌体系的核心设计逻辑,咱们分场景和原因来唠清楚:

什么时候该用刷新令牌的方式?

  • 当访问令牌过期时:Azure AD的访问令牌有效期通常只有1小时左右,过期后无法再用来访问资源,这时候就该用刷新令牌去获取新的访问令牌。
  • 当需要静默更新令牌时:如果是桌面应用、后台服务或者不想打扰用户的场景,重复调用初始acquireToken可能需要用户重新输入账号密码或者跳转到登录页,而刷新令牌可以在后台完成更新,完全不影响用户操作。
  • 当需要优化性能时:初始acquireToken要走完整的身份验证流程(凭据校验、权限检查、令牌生成等),而刷新令牌的请求流程更轻量,能减少服务端交互次数,提升响应速度。

为什么不建议重复调用初始acquireToken?

  • 用户体验拉胯:想象一下,用户每用1小时就得重新登录一次,换谁都得吐槽,尤其是需要长时间运行的应用,这种操作完全不可接受。
  • 效率极低:完整的身份验证流程步骤多、耗时久,频繁调用会拖慢应用性能,还会增加Azure AD服务端的负载。
  • 安全风险更高:如果用的是用户名密码模式的初始acquireToken,重复存储和发送用户凭据会大大增加泄露的概率;而刷新令牌是专门设计用于更新令牌的,权限范围更窄,就算泄露也能快速吊销,危害远小于用户凭据。
  • 容易触发安全限制:频繁调用初始acquireToken可能会被Azure AD判定为异常请求,触发限流、验证码甚至账号锁定等机制,而刷新令牌的请求是规范内的常规操作,稳定性更高。

简单来说,刷新令牌就是身份提供商专门留给咱们用来“续期”访问令牌的工具,用对应的acquireTokenByRefreshToken方法才是符合OAuth2.0规范和Azure AD最佳实践的做法~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:20:45