首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将桌面应用程序连接到Google,而不泄露应用程序的秘密密钥

将桌面应用程序连接到Google,而不泄露应用程序的秘密密钥
EN

Stack Overflow用户
提问于 2020-06-16 22:16:26
回答 1查看 225关注 0票数 2

我正在用Java编写一个开源的独立桌面应用程序来处理照片,我还添加了一个功能,允许用户将图片上传到他们的Google帐户,但我面临着身份验证/安全问题。

我已经注册了使用Google的项目,并下载了我的凭据JSON文件。我已经成功地使用了来自java-光库 Github项目的示例,所以一切都很好。

但是,凭据文件包含一个"client_secret“键,如果我没有弄错,就不应该公开它(我在这里正确吗?)但这些凭证必须以某种方式随应用程序一起分发,而且,由于它是开源的,基本上是公开的。因此,我的问题是:在不泄露我的应用程序的秘密密钥的情况下,我如何才能在他/她的Google帐户上验证我的应用程序的用户?

注意:我已经集成了Dropbox上传,他们的桌面应用程序过程清楚地解释了如何使用OAuth的令牌流在桌面应用程序中嵌入秘密密钥而进行身份验证。谷歌照片是否有等价物?

谢谢。

编辑:取得了一些进展(见下面我自己的答案),但在我终于有时间实现它之后,我意识到在用户授权应用程序并返回有效代码(Yay!)之后,步骤5(将代码替换为令牌)再次需要client_secret!:-(

我尝试了没有调用它,但我收到了一个"client_secret是丢失“错误,所以这不是一个错误。

经过更多的搜索(使用Google关键字,而不是oauth-2.0,它说明了一切),似乎“秘密”并不意味着它实际上是谷歌世界中的“秘密”。换句话说,将其嵌入应用程序是可以的,因为它是秘密的,但不能以恶意的方式使用(希望如此).

见对这些相关问题的答复:

一个Google页面甚至提到“在这种情况下,客户端秘密显然不被视为秘密”。

来吧,谷歌,给我解释一下安全是如何运作的

EN

回答 1

Stack Overflow用户

发布于 2020-06-19 00:17:17

好的,我想我找到了答案。

类似于Dropbox,谷歌可以在PKCE中使用OAuth 2,他们只是使用完整的拼写“代码交换的验证键”,这可能就是我一开始找不到它的原因:-)。详细信息在这里:https://developers.google.com/identity/protocols/oauth2/native-app#obtainingaccesstokens

我没有在Google中找到相同的进程,但是那些API是兆字节的类,所以我可能错过了它。基本上,只需要发送几个请求并侦听响应,所以我想我将从头开始实现它(并且可能还会摆脱Dropbox的客户机库,因为这个过程非常相似)。

希望能帮上忙..。

编辑:这并不能解决问题,因为在完成干净的PKCE过程之后,应用程序仍然必须发送私钥才能将授权代码交换为令牌。见我问题中的编辑

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62418441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档