使用OAuth 2.0登录的微软账户用户登出及刷新令牌失效方法咨询
解决微软账户Refresh Token失效问题
针对你的场景,有两种可靠方式让微软授权服务器失效refresh token,结合需求选择即可:
1. 撤销用户所有会话(批量失效令牌)
如果需要让该用户在所有设备、所有应用中的会话都失效,调用Microsoft Graph的revokeSignInSessions接口:
- 请求类型:POST
- 接口路径:
https://graph.microsoft.com/v1.0/users/{user-id}/revokeSignInSessions - 权限要求:需提前申请
User.ReadWrite.All或Directory.AccessAsUser.All权限(应用权限/委托权限都支持,根据你的应用架构选择) - 效果:该用户所有refresh token都会被标记为无效,所有关联的登录会话也会终止。
2. 单独撤销指定的Refresh Token
如果只想失效当前应用持有的这一个refresh token,用微软OAuth 2.0的令牌撤销端点:
- 请求类型:POST
- 端点地址:
https://login.microsoftonline.com/common/oauth2/v2.0/revoke - 提交参数(表单格式):
client_id:你的应用注册IDclient_secret:仅机密客户端(比如Web应用)需要填写,公开客户端(比如移动端)无需提供token:要失效的目标refresh tokentoken_type_hint:可选,填写refresh_token可帮助服务器更快识别令牌类型
- 效果:仅指定的refresh token失效,不会影响用户其他会话或其他应用的令牌。
完整登出流程建议
- 先清除应用本地存储的access token、refresh token,终止应用内的用户会话
- 调用上述任一接口完成服务器端的令牌失效
- (可选)跳转到微软官方登出页面,让用户彻底退出微软账户的全局会话:
https://login.microsoftonline.com/common/oauth2/v2.0/logout?client_id={你的应用ID}
内容的提问来源于stack exchange,提问作者NaineeL SoyantaR
相关产品推荐
相关产品推荐

