如何在Python中刷新过期的Bearer Token?附MSAL代码示例
Bearer Token 自动刷新实现(Python示例)
针对有效期3599秒的Bearer Token,使用MSAL库可自动完成令牌的缓存与刷新,无需手动计算过期时间。核心逻辑是每次使用令牌前优先从缓存读取,缓存失效时自动从认证服务获取新令牌。
代码示例
# 创建MSAL实例,传入client_id、认证地址和客户端密钥 client = msal.ConfidentialClientApplication(client_id, authority=authority, client_credential=client_secret) # 先尝试从缓存中查找可用的访问令牌 token_result = client.acquire_token_silent(scope, account=None) # 如果缓存中有可用令牌,直接使用 if token_result: access_token = 'Bearer ' + token_result['access_token'] print('从缓存加载访问令牌') # 如果缓存中无可用令牌,从Azure AD获取新令牌 if not token_result: token_result = client.acquire_token_for_client(scopes=scope) access_token = 'Bearer ' + token_result['access_token'] print('从Azure AD获取新的访问令牌')
关键说明
- MSAL库会自动维护令牌缓存,包括跟踪令牌过期时间,调用
acquire_token_silent时,若当前令牌即将过期,会自动触发刷新流程 - 无需手动处理3599秒的有效期计算,库内部已封装该逻辑
- 确保
scope参数与首次获取令牌时保持一致,否则缓存查找会失败
内容的提问来源于stack exchange,提问作者WhoamI
相关产品推荐
相关产品推荐

