如何在FedEx授权API OAuth2.0中获取Refresh Token?
解决FedEx API获取Refresh Token的问题
你当前使用的client_credentials授权模式本身不支持返回refresh token,这是该模式的设计特性——它面向服务端应用,直接通过客户端凭证获取访问令牌,没有刷新令牌的机制,所以FedEx API不会在这个模式下返回refresh token。
如果需要获取refresh token,必须切换到authorization code授权模式,步骤如下:
- 第一步:构造FedEx授权页面跳转链接,携带参数:
client_id、redirect_uri(需和开发者后台配置一致)、scope=openid offline_access、response_type=code - 第二步:用户完成FedEx账号登录并授权后,系统会跳转到你指定的
redirect_uri,并在URL参数中返回授权码code - 第三步:使用该授权码请求
/oauth/token接口,请求体参数设置为:grant_type: authorization_codeclient_id: 你的客户端IDclient_secret: 你的客户端密钥redirect_uri: 与第一步一致的回调地址code: 第二步获取的授权码
此时接口响应会包含refresh_token字段
你当前的请求信息
请求URL:/oauth/token 请求体: grant_type: client_credentials client_id: 784sdsrfere client_secret: vnjn8741cdsc3e7 scope: openid offline_access
你当前的响应内容
{ "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzY29wZSI6WyJDWFMtVFAiXSwiUGF5bG9hZCI6eyJjbGllbnRJZGVuB5MQahTTyMPLQnucflB6sc4hk_Gatx3L2Dgs3YkDMV4r3ORiB2EZKOOIfdKRSBVP5PmBEcYYXvG3bTcqe_X6UTgpxdwBNbNHKZL4", "token_type": "bearer", "expires_in": 3599, "scope": "CXS-TP" }
额外注意:确保你的FedEx开发者账号已开启authorization code模式的权限,且回调地址redirect_uri与后台配置完全匹配。
内容的提问来源于stack exchange,提问作者Arjun A G
相关产品推荐
相关产品推荐

