如何使用Postman获取Azure AD Refresh Token及报错问题排查
Postman获取Refresh Token报错问题
我尝试使用Postman获取Refresh Token,配置参数如下图所示:
请求后返回的响应内容如下:
请问我的操作哪里存在错误,该如何修正?
问题解答
错误原因
从返回的invalid_grant错误结合Postman配置来看,对应不同使用场景存在以下几类常见错误:
- 如果你是要用已有Refresh Token换取新的Access Token:
grant_type参数配置错误,当前选的authorization_code是授权码模式,不符合刷新令牌的场景要求 - 如果你是要首次获取带Refresh Token的授权结果:缺少必填的
scope参数,OAuth2授权码模式默认不会返回Refresh Token,需要额外配置权限范围 - 基础参数校验不通过:
code过期、redirect_uri和申请时配置不一致、client_id/client_secret错误也会触发invalid_grant报错
修正步骤
场景1:刷新已有Access Token
- 将
grant_type下拉选项修改为refresh_token - 删除当前的
code、redirect_uri参数,新增refresh_token参数,填入你之前拿到的有效Refresh Token值 - 确认
client_id、client_secret和你在认证服务端注册的客户端配置一致,重新发送请求即可
场景2:首次申请带Refresh Token的授权结果
- 保持
grant_type为authorization_code - 新增
scope参数,值填写offline_access,如果认证服务要求其他权限范围也一并追加 - 确认你使用的
code是刚从授权回调地址获取的未过期值,redirect_uri和申请code时使用的地址完全一致 - 提前在认证服务端的客户端配置中开启「允许下发Refresh Token」的开关,重新发送请求即可
修正成功后,响应结果会同时返回access_token、refresh_token、expires_in三个核心字段。
内容的提问来源于stack exchange,提问作者Yakiv Stoikov
相关产品推荐
相关产品推荐

