今天在搞微信第三方登录,登录之后获取 AccessToken ,根据微信的文档:文档地址
请求完 code 之后代入, Get https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 来获取到 AccessToken ,得到的返回是
{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: FCCDrA0148s112 ]"}
之前这样请求时有正常返回内容的,而且我也多次检查了返回 code , APPID , AppSecret 的正确性,有没有小伙伴帮忙看下是哪里出了问题。
我把我这边能想到的问题都检查过了,现在有点怀疑是微信那边的问题。
1
morewe 2017-01-21 19:24:15 +08:00 1
是不是你不小心同一个 code 请求了 2 次?或者超过了 5 分钟?
|
3
morewe 2017-01-21 19:28:43 +08:00 1
@harchiko 文档里写了啊,一个 code 只能用 1 次,你没仔细看么。。话说我重新看下文档,现在的有效期是 10 分钟了。
|
4
morewe 2017-01-21 19:31:35 +08:00
F.A.Q
1. 什么是授权临时票据( code )? 答:第三方通过 code 进行获取 access_token 的时候需要用到, code 的超时时间为 10 分钟,一个 code 只能成功换取一次 access_token 即失效。 code 的临时性和一次保障了微信授权登录的安全性。第三方可通过使用 https 和 state 参数,进一步加强自身授权登录的安全性。 |
7
zhuyao 2017-01-22 08:24:15 +08:00 1
code 用一次失效
|
8
xiaoyang7545 2017-01-22 17:41:10 +08:00 1
关于 code 不知道是不是 OAuth 2 的硬性要求,我用的 box dropbox googledrive onedrive 的授权都是一次无效
|