【问题标题】:How to get client secret from Google Developers Console in iOS?如何从 iOS 中的 Google Developers Console 获取客户端密码?
【发布时间】:2015-11-11 08:34:33
【问题描述】:

目前我正在处理一个旧项目,其中有一个客户端 ID 和客户端密码。现在我想使用另一个开发者帐户使用新的客户端 ID 和客户端密码更新那些。我遵循了从

开始的每一步

https://developers.google.com/+/mobile/ios/getting-started

Google APIs Console - missing client secret

但我只能看到客户 ID。客户端密码在哪里?

这里我只能看到客户 ID

【问题讨论】:

  • iOS 应用程序不需要/获取客户端密码。
  • @Steve 是的!但之前的开发人员在他传递 client_id、客户端密码、回调、范围、可见操作的 URL 中使用了 Web 视图。

标签: ios objective-c oauth-2.0 google-plus


【解决方案1】:

嘿,这是一步一步的过程,希望这对你有帮助......

第 1 步: 转到 Google 开发者控制台 并创建新应用

第 2 步:启用 google plus api

您可以在 API 库 旁边的 Enable API's 选项卡中看到启用 api,该选项卡在第二张图片中可见。

第 3 步:转到 API & auth 选项卡中的凭据,然后选择 凭据 选项

选择您需要的身份验证类型

然后您将看到配置同意屏幕使用您希望提供的信息配置页面。

第 4 步:选择顶部的 Web 应用程序 选项 并输入所需的网址

最后点击创建按钮

一旦你这样做了......你可以看到......客户端ID客户端密钥......

【讨论】:

  • 是的..!谢谢 :) 在第 4 步创建客户端 ID 时,我选择了 iOS。但是为什么你选择 Web 应用程序而不是 iOS。?
  • 当我们对 iOS 使用此步骤时,我看不到客户端密码。你能拿到吗?
【解决方案2】:

在 iOS 中,OAuth 凭据的应用程序类型应为“iOS”。 然后你应该在你的代码中传递一个空字符串作为客户端密码。

【讨论】:

    【解决方案3】:

    在应用中保守秘密(对整个应用来说是全局的,而不是每个用户唯一的)是永远不会安全的。见https://developer.okta.com/blog/2019/01/22/oauth-api-keys-arent-safe-in-mobile-apps这是一篇了不起的文章,请花尽可能多的时间来理解它。

    由于无法保证安全,因此在 iOS 中使用客户端密码是旧的、过时的方法。现在你想使用证明密钥代码交换(PKCE)。在上面的链接中也有解释,但简而言之:

    • 在 iOS 中生成一个密钥,一次用于特定登录
    • 仅将密钥的哈希发送给登录机构 (Google)。原件尚未离开应用程序
    • 要获取令牌,请发送: AuthorizationCode 也是一次性使用
    • Google 可以将“原始秘密”与之前发送的哈希值进行比较。因此它知道您不是窃取了 AuthorizationCode 的攻击者

    回到问题。 Google 让您创建不同类型的“应用程序”:

    • Web 应用程序:具有客户端密码(位于后端服务器上,而不是可公开访问的 iOS 应用程序上)
    • iOS 应用程序:改为使用“iOS URL 方案”。有些框架使用此 URL 方案并为您执行我上面描述的步骤(包括 PKCE)。免责声明:我不是 iOS 开发人员,但我有 99% 的把握

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 2021-04-26
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      相关资源
      最近更新 更多