验证 Google 凭据

Posted

技术标签:

【中文标题】验证 Google 凭据【英文标题】:Validating Google credentials 【发布时间】:2016-02-26 15:42:38 【问题描述】:

当您在 Google Developer console 上创建凭据时,您可以创建几种不同类型的凭据,具体取决于创建的类型,您可以拥有以下任何一种

公共 API 密钥 客户 ID 客户端密码 服务帐号电子邮件地址

它们都有不同的格式。 我已删除我要发布的内容。

公共 API 密钥:AIzaSyAcMvMr_bk91qRKZ5SGYEvF5HWjXVE7Xkk 客户端 ID:1046123799103-d0vpdthl4ms0soutcrpe036ckqn7rfpn.apps.googleusercontent.com 客户端密码:G5QtTuBDp6ejKraR0XodNwaW 服务帐号邮箱:1046123799103-6v9cj8jbub068jgmss54m9gkuk4q2qu8@developer.gserviceaccount.com

有什么方法可以在我的应用程序中验证这些。它们是什么类型的钥匙?

我正在使用 C#,但任何有关键类型的信息都会有所帮助。

我可能会想出某种正则表达式检查客户 ID 和服务帐户电子邮件。但是必须有一种方法可以更好地验证它们。

更新:

Google 让您验证访问令牌为什么无法验证凭据 TokenInfo validation

不工作。

Convert.FromBase64String("AIzaSyAcMvMr_bk91qRKZ5SGYEvF5HWjXVE7Xkk");

【问题讨论】:

它们都只是“令牌”,它们不是编码字节 [] 的。您只需要将它们视为文本块 是的,但我正在寻找一种方法来验证它们是否有效,如果有人发送的 XXX 不是有效的客户秘密 【参考方案1】:

验证凭据是否有效的唯一方法是尝试使用它们并查看服务器是否接受它们。

没有可以检查的校验和或算法,Google 没有为这些令牌指定格式,因此他们可以随时更改它。您只能将它们视为不透明的 blob,然后将它们传递出去,看看服务器会响应什么。

【讨论】:

感谢您的回答,看来我只需要测试传递的字符串是否为 null 和希望。如果错误无效,我也会在代码中添加一个 catch 来捕获错误。

以上是关于验证 Google 凭据的主要内容,如果未能解决你的问题,请参考以下文章

Google Calendar API v3 - 使用硬编码凭据进行身份验证

Google People API:请求具有无效的身份验证凭据 - 未设置授权承载标头

Google Analytics API - 通过身份验证后无法添加服务

提供的身份验证凭据格式错误或已过期

Google Home 授权代码和使用 Google 帐户进行身份验证

Google API python凭据OAUTH服务器 - 服务器