收藏
回答

服务商扫码登录 get_login_info 一直报 40029 invalid code?

标题:服务商扫码登录 get_login_info 一直报 40029 invalid code,已确认 suite_access_token 匹配

问题描述:

我是服务商,使用"登录授权"功能实现扫码登录。扫码链接能正常生成,用户扫码后回调也能正常收到 code,但调用 get_login_info 接口始终返回 errcode=40029, invalid code。

环境信息:

服务商 CorpID:ww7383d2f592eda82b

登录授权 SuiteID:wwe5092ac1cdd8c6ee

第三方应用 SuiteID:wwf45adc3f43187dd8

测试企业 CorpID:ww5d1f1289ae15c634(已安装第三方应用)

服务器出口 IP:61.130.6.2(已加白名单)

我的流程:

生成扫码链接:login_type=ServiceApp&appid=wwe5092ac1cdd8c6ee&redirect_uri=...&state=...

用户扫码成功,回调带回 code 参数

获取登录授权应用的 suite_access_token:

suite_id = wwe5092ac1cdd8c6ee

suite_secret = 登录授权页面的 Secret

suite_ticket = 从登录授权指令回调收到的 ticket(<SuiteId>wwe5092ac1cdd8c6ee</SuiteId>)

获取成功,返回了有效的 suite_access_token

调用 POST /cgi-bin/service/get_login_info?access_token={suite_access_token},body:{"auth_code":"xxx"}

返回 errcode=40029, invalid code

已排查:

code 只使用了一次(日志确认只有一次回调)

code 在 5 分钟有效期内使用(从扫码到调用 get_login_info 不到 1 秒)

只有 1 个服务实例(排除多实例重复消费)

之前用 provider_access_token 调用时,调试工具显示"颁发code的应用appid跟消费code所使用的应用suiteid不一致"

改为用登录授权 SuiteID(wwe5092ac1cdd8c6ee)的 suite_access_token 后,get_suite_token 成功,但 get_login_info 仍报 40029

hint 值: 1779532521593750484340456

请问:

登录授权扫码产生的 code,正确的消费方式是什么?应该用哪个 token?

测试企业是否需要额外授权"登录授权应用"才能使用扫码登录?

登录授权的 SuiteID 和第三方应用的 SuiteID 不同,这是否会导致 code 无法被消费?

回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    05-25

    你好,

    1. code已过期(有效期5分钟)
    2. code被重复使用
    3. code无效

    4.code和appid不匹配,code不是对应appid生成的

    05-25
    有用
    回复
登录 后发表内容