客户端密钥

.NET 版 Google API 客户端库使用 client_secrets.json 文件来存储 client_idclient_secret 及其他 OAuth 2.0 参数。

client_secrets.json 文件是一个 JSON 格式的文件,包含客户端 ID、客户端密钥和其他 OAuth 2.0 参数。下面是一个 Web 应用的 client_secrets.json 文件示例:

{
  "web": {
    "client_id": "asdfjasdljfasdkjf",
    "client_secret": "1912308409123890",
    "redirect_uris": ["https://www.example.com/oauth2callback"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

以下是已安装应用的 client_secrets.json 文件示例:

{
  "installed": {
    "client_id": "837647042410-75ifg...usercontent.com",
    "client_secret":"asdlkfjaskd",
    "redirect_uris": ["http://localhost"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

该格式可定义以下两种客户端 ID 类型之一:

  • web:Web 应用。
  • installed:已安装的应用。

webinstalled 子对象具有以下强制性成员:

  • client_id(字符串):客户端 ID。
  • client_secret(字符串):客户端密钥。

此文件的所有其他成员都是可选的,.NET 客户端库不使用它们。

设计初衷

过去,OAuth 2.0 端点的提供方要求使用其服务的用户将注册页面上的客户端 ID 和客户端密钥复制并粘贴到工作代码中。此方法容易出错,而且对使 OAuth 2.0 正常运行所需的信息不完整。 (OAuth 2.0 还需要知道所有端点并配置重定向 URI。) 如果服务提供商提供可下载的 client_secrets.json 文件,并且客户端库也准备好使用这些文件,那么实现 OAuth 2.0 会更轻松,也更不容易出错。