如何从 iOS 中的 Google Developers Console 获取客户端密码?
How to get client secret from Google Developers Console in iOS?
目前我正在处理一个旧项目,其中有一个客户端 ID 和客户端密码。现在我想使用另一个开发人员帐户更新具有新客户端 ID 和客户端密码的那些。我遵循了
的每一步
https://developers.google.com/+/mobile/ios/getting-started
Google APIs Console - missing client secret
但我只能看到客户端 ID。客户端密钥在哪里?
这里我只能看到客户端id
嘿,这是一步一步的过程,希望这对你有帮助...
第一步:
转到 Google 开发者控制台 并创建新应用程序
步2:Enable google加api
您可以在 启用 API 的 选项卡中看到启用 api,它位于 API 旁边Library ,在第二张图片中可见。
第 3 步:转到 API & auth 选项卡中的凭据,然后 select credentials 选项
select 您需要的身份验证类型
然后您将可以看到配置同意屏幕使用您希望提供的信息配置页面。
第 4 步:Select 顶部的 web 应用程序 选项
并输入所需的 url's
最后点击创建按钮
一旦你这样做了..你可以看到...客户端ID和客户端密钥...
在iOS时,OAuth凭证的应用类型应该是'iOS'。
然后您应该在代码中传递一个空字符串作为客户端密码。
在应用程序中保密(对整个应用程序来说是全局的,而不是每个用户唯一的)永远不会安全。请参阅https://developer.okta.com/blog/2019/01/22/oauth-api-keys-arent-safe-in-mobile-apps这是一篇很棒的文章,请花尽可能多的时间来理解它。
因为不能保持安全,所以在 iOS 中使用客户端密钥是旧的、过时的方法。现在您想使用 proof-key-code-exchange (PKCE)。上面也有解释link,但简而言之:
- 在 iOS 中生成一个密钥,它是一次性用于该特定登录
- 仅将密钥的哈希值发送给登录机构 (Google)。原件还没离开app
- 要获得令牌,您发送:
AuthorizationCode 也是一次性使用的
- Google 可以将“原始秘密”与之前发送的哈希进行比较。因此它知道您不是窃取 AuthorizationCode
的攻击者
回到问题。 Google 让我们创建不同类型的“应用程序”:
- Web 应用程序:具有客户端机密(它在后端服务器上,而不是在可公开访问的 iOS 应用程序上)
- iOS 应用程序:改为使用“iOS URL 方案”。有些框架使用此 URL 方案并执行我上面为您描述的步骤(包括 PKCE)。免责声明:我不是 iOS 开发人员,但我 99% 确定
目前我正在处理一个旧项目,其中有一个客户端 ID 和客户端密码。现在我想使用另一个开发人员帐户更新具有新客户端 ID 和客户端密码的那些。我遵循了
的每一步https://developers.google.com/+/mobile/ios/getting-started
Google APIs Console - missing client secret
但我只能看到客户端 ID。客户端密钥在哪里?
这里我只能看到客户端id
嘿,这是一步一步的过程,希望这对你有帮助...
第一步: 转到 Google 开发者控制台 并创建新应用程序
步2:Enable google加api
您可以在 启用 API 的 选项卡中看到启用 api,它位于 API 旁边Library ,在第二张图片中可见。
第 3 步:转到 API & auth 选项卡中的凭据,然后 select credentials 选项
select 您需要的身份验证类型
然后您将可以看到配置同意屏幕使用您希望提供的信息配置页面。
第 4 步:Select 顶部的 web 应用程序 选项 并输入所需的 url's
最后点击创建按钮
一旦你这样做了..你可以看到...客户端ID和客户端密钥...
在iOS时,OAuth凭证的应用类型应该是'iOS'。 然后您应该在代码中传递一个空字符串作为客户端密码。
在应用程序中保密(对整个应用程序来说是全局的,而不是每个用户唯一的)永远不会安全。请参阅https://developer.okta.com/blog/2019/01/22/oauth-api-keys-arent-safe-in-mobile-apps这是一篇很棒的文章,请花尽可能多的时间来理解它。
因为不能保持安全,所以在 iOS 中使用客户端密钥是旧的、过时的方法。现在您想使用 proof-key-code-exchange (PKCE)。上面也有解释link,但简而言之:
- 在 iOS 中生成一个密钥,它是一次性用于该特定登录
- 仅将密钥的哈希值发送给登录机构 (Google)。原件还没离开app
- 要获得令牌,您发送:
AuthorizationCode 也是一次性使用的 - Google 可以将“原始秘密”与之前发送的哈希进行比较。因此它知道您不是窃取 AuthorizationCode 的攻击者
回到问题。 Google 让我们创建不同类型的“应用程序”:
- Web 应用程序:具有客户端机密(它在后端服务器上,而不是在可公开访问的 iOS 应用程序上)
- iOS 应用程序:改为使用“iOS URL 方案”。有些框架使用此 URL 方案并执行我上面为您描述的步骤(包括 PKCE)。免责声明:我不是 iOS 开发人员,但我 99% 确定