当前位置: 首页 > 知识库问答 >
问题:

来自google oauth2响应的不同负载导致json错误

艾令秋
2023-03-14

我的应用程序中使用了Google的oauth2,其中id_token是由句点分隔的字符串。我在这里读到,id_token被划分为三部分,第二部分包含实际有效负载。如果我将字符串拆分并解码第二个值,我将使用我的帐户得到我期望的结果。但我不明白的是,当我尝试使用我妻子的帐户时,如果我将第二部分解析为json,就会出现“意外字符”错误。

我尝试过从控制台获取字符串并通过在线Base64解码器运行它,但确实看到json没有得到正确的评估。

{"iss":"accounts.google.com","sub":"111475728886332985448","azp":"74770364428-621332j2r657ish4jh94n9n1k0mplpgd.apps.googleusercontent.com","email":"her.email@gmail.com","at_hash":"lSKFL86HsCeu7TU4tsYBTw","email_verified": true,"aud":"74300369428-621332j2r657ish4jh94n9n1k0mplpgd.apps.googleusercontent.com","iat": 1414192526,"exp": 191819642

这两个帐户之间有什么不同,会导致我的电子邮件返回有效的json,而她的电子邮件则不会?

共有1个答案

蒯硕
2023-03-14

id_token是一个JSON Web令牌(JWT ),在本例中使用紧凑序列化。JWT元素是无填充的base64url编码,这与普通的base64编码略有不同,这可以从https://data tracker . IETF . org/doc/html/draft-IETF-Jose-JSON-we B- signature-38 # appendix-C中看出

一个不错的id_token/JWT解码器可以在这里找到:http://jwt.io/

您可能很幸运拥有自己的id_token,因此不需要填充。

 类似资料:
  • 我想在RESTful API中支持分页。 我的API方法应该通过返回产品的JSON列表。但是,可能有成千上万的产品,我想浏览它们,所以我的请求应该如下所示: 但我的JSON响应需要是什么样的呢?API使用者通常会在响应中期望分页元数据吗?还是只需要一系列产品?为什么? 看起来Twitter的API包含元数据:https://dev.twitter.com/docs/api/1/get/lists/

  • 在读取我从 字符串并尝试将值分配给 POJO 类时遇到问题。 当我使用此格式时,它可以工作(意外发现,复制粘贴): 但实际上从中读取时,它看起来像下面一个:- 这是我的代码: 我的问题不是我不知道如何将JSON字符串编组到POJO,而是我从获得的JSON响应对于无效。

  • 我在尝试进行返回JSON的ajax POST调用时出现内部错误。ajax调用来自JS页面: 这是我的Spring MVC调用方法: 问题是,我在这个类中只设置了几个字段(30个字段中有17个)。这是一个具有简单setter-getter的bean类。如果我设置了所有30个字段,效果很好。你能建议如何设置JSON响应,以便我可以纠正这个问题吗。

  • 我正在从多个表/POJO中检索数据。我想要JSON格式的数据。在Pojo类中,我使用@JsonProperty。但我仍然没有得到所需格式的结果Json。我的结果是: 我想要格式

  • 问题内容: 当前,来自spring boot的错误响应包含如下标准内容: 我正在寻找一种方法来消除响应中的“ exception”属性。有没有办法做到这一点? 问题答案: 如有关错误处理的文档中所述,您可以提供自己的bean,该bean实施以控制内容。 一个简单的方法就是继承。例如:

  • 在开始之前:我查看了以下链接,但没有一个与我的问题相匹配: Swagger-指定可选对象属性或多个响应 Swagger;根据可选参数指定两个具有相同代码的响应 Swagger-指定可选对象属性或多个响应 因此,我有一个endpoint的OpenAPI 3定义,该endpoint为成功调用返回给定的有效负载(例如,)。但是,对于不成功的调用(例如,),我希望返回完全不同的错误负载。 你可以看到下面的