使用带PKCE的授权码模式对接Tapkey管理API未返回refresh_token问题
问题原因及解决方案
- 最核心的遗漏是你在授权请求的scope参数中未添加
offline_access:
OAuth2规范明确要求,若需要获取refresh token,必须在发起授权重定向请求时,在scope参数里显式添加offline_access值。你当前的授权请求scope仅配置了write:grants,平台自然不会返回refresh token。 - 附加验证项:
请确认你在Tapkey开发者后台创建的对应OAuth客户端,已开启允许使用offline_accessscope、允许发放refresh token的配置,部分类型的公开客户端默认会关闭该权限,需要手动开启。
修改示例
你需要调整授权请求的scope参数,修改后的重定向地址参数如下:https://login.tapkey.com/connect/authorize?client_id=[...]&redirect_uri=[...]&scope=write%3Agrants%20offline_access&response_type=code&state=[...]&code_challenge=[...]&code_challenge_method=S256
修改后重新走完整的授权码流程,调用POST https://login.tapkey.com/connect/token接口时就会返回refresh_token字段。
内容的提问来源于stack exchange,提问作者Oliver Wycisk
相关产品推荐
相关产品推荐

