使用Google YouTube API OAuth 2.0而不使用客户端密码

使用Google YouTube API OAuth 2.0而不使用客户端密码,oauth,youtube,google-api,desktop-application,Oauth,Youtube,Google Api,Desktop Application,我正在开发一个桌面应用程序,它将与一个或几个Google API集成。关于OAuth 2.0的主题,我已经读了很多书,我的印象是规范说桌面应用程序不需要client\u secret,因为它实际上不能保密。任何一个拥有反编译器或者能够检查web请求的人都可以知道秘密是什么 但是,根据,我试图发送请求以接收访问和刷新令牌,但收到以下400错误请求: { "error": "invalid_request", "error_description": "client_secret is mi

我正在开发一个桌面应用程序,它将与一个或几个Google API集成。关于OAuth 2.0的主题,我已经读了很多书,我的印象是规范说桌面应用程序不需要
client\u secret
,因为它实际上不能保密。任何一个拥有反编译器或者能够检查web请求的人都可以知道秘密是什么

但是,根据,我试图发送请求以接收
访问
刷新令牌
,但收到以下
400错误请求

{
  "error": "invalid_request",
  "error_description": "client_secret is missing."
}
显然,我也尝试过添加并发送
客户机\u secret
,效果很好

因此,在这种情况下:

  • 这是API中的错误吗?这个字段实际上不应该是 需要吗?
  • 如果它不是一个bug,那么这是否意味着 解决方案是设置一个中介身份验证服务器 传递这些身份验证请求?
  • 后者似乎是使用RESTAPI的荒谬要求。不过,如果有任何服务或项目已经解决了这个问题,我将非常有义务了解它们。我可以自己写一些东西,但我不想被迫建立服务器,设置SSL,然后为这些请求编写服务器应用程序

    我所做的一些研究确实让我想到了这个职位:


    然而,这并没有特别提到我试图使用的API。它也没有涵盖太多的变通方法。不过,这似乎与我在这里的想法产生了共鸣。

    据我所知,谷歌认证服务器要求您在为刷新令牌交换认证代码时发送客户端密码。一旦你有了刷新令牌,你就不需要发送它了。所以,为了让客户机机密实际上是机密的,看起来我必须要设置一个Web服务器。我真的没有想到有人对我的应用程序进行反编译以获取我的客户机id和机密。我给谷歌的某个人发了一封电子邮件,看看我是否能得到他们的意见。我会让你知道我听到了什么。谢谢!我很感激。是的,我的年轻人肯定是反编译应用程序,截取了我自己电脑的网络请求,并且检查了很多数据包,所以当涉及到我自己的应用程序安全时,我肯定是过于谨慎了。不过,我想我还是会把事情搞砸的。哈哈米的电子邮件已经转发给谷歌的“认证和安全人员”。希望他们能给我一个关于最佳实践的建议。让我们看看他们怎么说。当你的电子邮件在谷歌IMO上转悠时,这是一个非常好的问题。