HarmonyOS 鸿蒙Next获取华为帐号Access Token报错{sub_error:20152,error_description:invalid code,error:1101}

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next获取华为帐号Access Token报错{sub_error:20152,error_description:invalid code,error:1101}

问题描述

项目集成了华为Accout SDK,参考官方文档请求获取Access Token,但是报错,返回:{sub_error20152,error_descriptioninvalid code,error1101}。

问题分析

看报错提示是code失效了,官方文档中也描述code的有效期只有5分钟:

1.png

我也搜索过该错误码:

2.png

我是刚获取的数据,并且没有做任何的处理,确定不是这两个错误引起的异常。于是联系了华为的技术支持(可提单联系:https://developer.huawei.com/consumer/cn/support/feedback),发现我们提交的入参格式有问题,不应该进行拼接,应该以json字符串的格式传输。

问题解决

开始入参数据是以这种拼接的格式传输的,一直出现异常。

3.png

改成下面这种json字符串的格式传输,问题解决。

4.png

注意:还需要排查请求方式:使用POST,消息的请求头要加上:Content-Type: application/x-www-form-urlencoded

8 回复
问题定位很准,茅塞顿开啊
版主牛批!这操作行之有效
感谢大佬指点迷津,已经学习了
端口443有点迷
可是我的是手机啊,要怎么弄啊

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

如果是postman呢,我选择了x-www-form-urlencoded格式,还是不行,这是为啥

您遇到的HarmonyOS鸿蒙Next获取华为帐号Access Token报错问题,错误代码为{sub_error:20152, error_description:invalid code, error:1101},这通常指示您提供的授权码(code)无效或已过期。

此类错误常见于OAuth 2.0授权流程中,可能由以下几个原因引起:

  1. 授权码已使用:每个授权码只能使用一次。如果之前已经用该码成功获取过Access Token,则无法再次使用。

  2. 授权码过期:授权码通常有一个较短的有效期(如10分钟)。如果在此时间内未使用,码将失效。

  3. 重定向URI不匹配:请求授权码时使用的重定向URI必须与获取Access Token时使用的URI完全一致。

  4. 客户端ID或密钥错误:确保您使用的客户端ID和密钥与注册在华为开发者平台上的信息一致。

请检查上述可能的原因,并重新执行授权流程。确保每一步都正确无误,特别是授权码的生成和使用过程。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部