集成LinkedIn OAuth 2.0时未返回Refresh Token,如何60天内免重授权?
问题解答
- 你当前无法在60天内刷新令牌,因为未获取到Refresh Token,核心原因是授权请求中缺少
offline_access权限范围。 - LinkedIn OAuth 2.0协议明确规定:只有在授权阶段主动请求
offline_accessscope,访问令牌端点才会返回Refresh Token。你当前的授权范围仅包含r_emailaddress,r_liteprofile,w_member_social,未包含这个关键权限,所以响应里不会生成Refresh Token。 - 要实现60天内无需用户重新授权的令牌刷新,你需要:
- 修改授权请求的scope参数,添加
offline_access,完整范围应为r_emailaddress r_liteprofile w_member_social offline_access(参数值用空格分隔)。 - 引导用户重新完成授权流程(之前的授权未包含
offline_access,必须重新授权),完成后访问令牌端点会返回包含Refresh Token的响应。 - 拿到Refresh Token后,可在访问令牌过期前调用刷新接口获取新的访问令牌;LinkedIn的Refresh Token有效期为60天,每次刷新会生成新的Refresh Token,旧令牌同时失效,需及时保存新令牌以延续有效期。
- 修改授权请求的scope参数,添加
补充:你的应用已选择Sign In with LinkedIn、Share on LinkedIn产品,这两类产品均支持
offline_accessscope,无需额外配置产品权限,只需在授权请求中添加该scope即可。
内容的提问来源于stack exchange,提问作者Pratik Mathur
相关产品推荐
相关产品推荐

