开发者社区> 问答> 正文

2小时过期时间后重新获取 corp access token 导致JS授权失败

企业完整名称大安全年会杭州站
访问接口的路径https://oapi.dingtalk.com/user/getuserinfo
输入参数corp_id = dingbae4202b9f78b281
发起请求的服务器的外网IP地址
110.173.0.142
发起请求的时间点2016-06-03 09:15:23
返回的错误结果不存在的临时授权码
问题是出现在corp_access_token 过期后重新获取时,程序中设置的过期时间是 7000 s(秒),并且恰好碰到这种情况:

js获取到的临时授权码 code 是在 corp_access_token 过期之前获取的,然后在获取 user_info 之前,重新获取了 corp_access_token,正常情况下只有这一个请求或者获取到旧的  corp_access_token 的请求会返回 “不存在的临时授权码”,但实际的情况是 该 corp_id 其后的接口( https://oapi.dingtalk.com/user/getuserinfo)调用均提示 “不存在的临时授权码”,麻烦帮忙看下是什么原因导致的。

展开
收起
yuesir_fu 2016-06-06 16:22:25 8613 0
4 条回答
写回答
取消 提交回答
  • 回 5楼yuesirfu的帖子
    corp_access_token 有效期7200,如果服务端过期了获取新的值,但服务端没过期再次获取还是老的值,服务端有效期顺延7200秒,应该是这样!所以如果在7001秒到7200秒获取到的还是老的数据,但有效期会更新,继续用没事的!如果7200秒以后就是获取到新的!
    2016-06-12 11:14:51
    赞同 展开评论 打赏
  • 回 5楼yuesirfu的帖子
    同问
    2016-06-08 17:48:17
    赞同 展开评论 打赏
  • 出现这个场景建议这样排查:
    1. 先确定这个现象是偶现的,还是必现的
    2. 确保获取临时授权码之后,没有继续获取临时授权码,保证获取的临时授权码是正确的
    2016-06-06 20:05:41
    赞同 展开评论 打赏
  • Re2小时过期时间后重新获取 corp access token 导致JS授权失败

    当时的报错信息是这样的

    -------------------------

    回 3楼忠恕的帖子
    1:现象是必现的~
    2:出现上图所示的错误就是说 JS 端验证都没有通过,所以还没有请求临时授权码

    -------------------------

    回 3楼忠恕的帖子
    还有一个问题:corp_access_token 服务端的过期时间是 2小时(7200 s),现在本地缓存设置的是 7000 s过期,也就是本地缓存过期时间要小于 服务端过期时间,那么在 7001 s时,本地缓存已经过期,但是服务端没有过期,重新调用接口的时候获取得到的 corp_access_token 是服务端的未过期的 corp_access_token 还是说本地每次请求一次就会得到一个新的 corp_access_token
    2016-06-06 17:27:26
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载