Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌云存储临时凭证_Android_Ios_Google Cloud Datastore_Google Cloud Storage - Fatal编程技术网

Android 谷歌云存储临时凭证

Android 谷歌云存储临时凭证,android,ios,google-cloud-datastore,google-cloud-storage,Android,Ios,Google Cloud Datastore,Google Cloud Storage,如果我的移动应用程序允许用户直接上传到谷歌云存储,而无需通过我的web服务器,那么有没有一个概念可以向用户提供临时凭证?或者有没有其他方法来实现这一点,这样我就不需要在应用程序中公开我自己的凭据了?我认为这就是OAUTH的用途,OAUTH现在与所有Google API一起使用。正如您所指出的,没有好的方法可以保护您在客户设备上的凭据,因此客户端密钥(与服务器密钥相反)不允许直接访问您的服务/api。相反,客户端密钥(随应用程序一起提供)更多地用作标识符,而不是密钥:它允许客户端从OAUTH服务器

如果我的移动应用程序允许用户直接上传到谷歌云存储,而无需通过我的web服务器,那么有没有一个概念可以向用户提供临时凭证?或者有没有其他方法来实现这一点,这样我就不需要在应用程序中公开我自己的凭据了?

我认为这就是OAUTH的用途,OAUTH现在与所有Google API一起使用。正如您所指出的,没有好的方法可以保护您在客户设备上的凭据,因此客户端密钥(与服务器密钥相反)不允许直接访问您的服务/api。相反,客户端密钥(随应用程序一起提供)更多地用作标识符,而不是密钥:它允许客户端从OAUTH服务器(在本例中是Google运行的)请求临时访问令牌,然后可以使用该令牌访问您的服务/API

这个额外的层还为您提供了更多的控制,例如,您可以将限制(例如客户端IP地址)与客户端密钥相关联

总的来说,这似乎不是一个完美的解决方案,它当然会带来额外的复杂性,但它是为了解决您所关心的问题

关于Android上的实现,您可能正在使用google client library for java,它支持google的OAUTH2

请阅读此处了解更多信息:

谢谢您的回复。如果我理解正确,您的意思是为每个应用程序/客户端分配存储在每个设备上的客户端密钥?是的。您可以根据需要生成任意多个客户端密钥(请参阅新云控制台中的“已注册应用程序”),但通常的方案是为每个客户端应用程序生成一个客户端密钥。当你生成客户端密钥时,你通常必须识别客户端应用程序(例如,它所签署的证书),因此它只能与该客户端应用程序一起工作,尽管我不确定如何安全地执行。你可能还想提及哪些对一次性上传的Hanks家伙来说非常有效。真的有点亮了。也许我可以研究一下它是否使用客户机密钥为每次上传创建签名URL。从凭证不公开的角度出发,最大限度地减少误用云存储的机会。