V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
harchiko
V2EX  ›  Android

Android 微信第三方登录 获取不到 AccessToken, OAuth 2 出问题了?

  •  
  •   harchiko · 2017-01-21 18:42:42 +08:00 · 11001 次点击
    这是一个创建于 2861 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天在搞微信第三方登录,登录之后获取 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 条附言  ·  2017-01-21 19:27:31 +08:00
    结果是我使用同一个 code 请求了两次。没记得 OAuth 2 有这样的规定啊。
    8 条回复    2017-01-22 17:41:10 +08:00
    morewe
        1
    morewe  
       2017-01-21 19:24:15 +08:00   ❤️ 1
    是不是你不小心同一个 code 请求了 2 次?或者超过了 5 分钟?
    harchiko
        2
    harchiko  
    OP
       2017-01-21 19:26:07 +08:00
    @morewe 是的,我检查了下,同一个不能请求两次吗?
    morewe
        3
    morewe  
       2017-01-21 19:28:43 +08:00   ❤️ 1
    @harchiko 文档里写了啊,一个 code 只能用 1 次,你没仔细看么。。话说我重新看下文档,现在的有效期是 10 分钟了。
    morewe
        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 参数,进一步加强自身授权登录的安全性。
    harchiko
        5
    harchiko  
    OP
       2017-01-21 19:32:27 +08:00
    @morewe 我脑子抽了,把这个 code 跟 AccessToken 搞混了。
    morewe
        6
    morewe  
       2017-01-21 19:34:20 +08:00   ❤️ 1
    @harchiko 没事,找到原因而且是正常原因就好,就怕遇到奇葩问题。
    zhuyao
        7
    zhuyao  
       2017-01-22 08:24:15 +08:00   ❤️ 1
    code 用一次失效
    xiaoyang7545
        8
    xiaoyang7545  
       2017-01-22 17:41:10 +08:00   ❤️ 1
    关于 code 不知道是不是 OAuth 2 的硬性要求,我用的 box dropbox googledrive onedrive 的授权都是一次无效
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5579 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 03:00 · PVG 11:00 · LAX 19:00 · JFK 22:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.