- app怎么获取临时令牌code
对于托管式授权方式,由于app托管在应用市场,那么用户在进入app应用时,阿里巴巴开放平台会302跳转到app的入口地址,同时会附带参数code。App在跳转的http请求中,可取得此参数。
对于客户端或者web端授权方式,需要app自己发起获取code的请求,用户登录成功后就会返回code。
- code错误
返回结果为:{“error”:”invalid_request”,”error_description”:”wrong authorizationCode:cb681549-c8de-441c-b96b-e0e224fb28e0”}
可能原因:
a. code已失效,为了保证用户数据安全,临时令牌code的有效期为2分钟。App在获得令牌后,需同步调用getToken接口,获取token。
b. 用该code多次获取token。code为一次性消费的临时令牌,调用一次getToken后,此临时令牌便已失效。
c. 获取code使用的appKey和获取token使用的appKey不一致。
- 未使用post调用getToken接口
返回结果为:{“error”:”invalid_request”,”error_description”:”Method not set to POST.”}
oauth2协议规定,getToken必须为post提交
- 未使用https调用getToken接口
返回结果为:{“error_code”:”400”,”error_message”:”API unsupport the channel: http.”,”exception”:”API unsupport the channel: http.”}
getToken必须为https请求
- 调用getToken接口时缺少redirect_uri参数
返回结果为:{“error”:”invalid_request”,”error_description”:”Missing parameters: redirect_uri”}
getToken的参数中redirect_uri必须要填
- 缺少签名
返回结果为:{“error_code”:”401”,”error_message”:”Request need signature”,”exception”:”Request need signature”}
原因是当前访问的api 需要签名,但是传入的参数中没有aopsignature。在调用api 时要注意看文档中的系统级输入参数,在其中可以看到请求签名是否必须
- accessToken过期
返回结果为:{“error_code”:”401”,”error_message”:”Request need user authorized”,”exception”:”Request need user authorized”}
原因是传入的参数access_token已经过期,需要用refreshToken重新换取accessToken。
- 没有授权
返回结果为:{“error_code”:”401”,”error_message”:”Request need user authenticated”,”exception”:”Request need user authenticated”}
原因是当前访问的api 需要用户授权才能访问,但是没有传入参数access_token。在调用api 时要注意看对于api 文档中的”API用户授权类型”,在其中可以看到是否需要授权。
- refreshToken错误
返回结果为:{“error”:”invalid_request”,”error_description”:”wrong refreshToken”}
原因一般有两种:refreshToken错误,refreshToken过期
- 没有传refreshToken参数
返回结果为:{“error”:”invalid_request”,”error_description”:”Missing parameters: refresh_token”}
原因是在用refreshToken换accessToken时refreshToken参数为空,请检查post请求的refreshToken参数是否遗漏
- 密钥校验不通过
返回结果为:{“error”:”unauthorized_client”,”error_description”:”getToken secret error! client_id: YOUR_APPKEY”}
原因是在使用getToken接口时传入的client_secret参数跟client_id不匹配,也就是没有传入client_id(appkey)对应的密钥,导致后台在校验密钥时发现与预期的密钥不符,所以报错。 可能原因有以下两种:一是传入的client_secret错误,二是传入了正确的密钥但是在post调用时没有进行urlencode。
最后编辑:admin 更新时间:2022-06-29 17:49