为应用程序提供自己的用户ID /会话以访问Google驱动器

时间:2015-01-22 17:41:10

标签: c# google-drive-api google-docs-api

我有一个C#MVC网络应用程序,需要复制一个google工作表(模板),并在模板所有者读取/写入副本时将副本设置为只读当前用户。

通常,您会为应用程序本身提供一个ID来执行此类功能。我还没有弄清楚如何为应用程序提供独立于当前用户(“User-2”)的ID和会话(“User-1”)。我不想给只读/用户提供读/写密码来制作模板的副本,我真的更喜欢在当前用户的谷歌登录之外复制。

1 个答案:

答案 0 :(得分:0)

您的应用程序凭借其提交的OAuth访问令牌绑定到特定用户。因此,如果您的应用可以检索用户2的访问令牌(具有适当的范围),那么您就可以开始了。

获取User-1的访问令牌 您可以通过多种方式执行此操作,具体取决于应用的易变性和安全性要求。从根本上说,它要求您的Web应用程序为用户1提供存储的刷新令牌,它可以随时用于静默获取访问令牌。有关详细信息,请参阅How do I authorise an app (web or installed) without user intervention? (canonical ?)

你问题中的一些术语需要一些理顺。

  • “ID” - 当您在开发者控制台上注册时,每个应用程序都有自己的ID。它被称为客户端ID,让一些人感到困惑,认为ID与最终用户有某种联系;它不是。
  • “会话” - Google云端硬盘没有会话。可能会有一个Google会话,其中OAuth流程将寻求识别Google用户,以便为该用户生成访问令牌。但是Drive没有“会话”,这就是为什么Drive应用可以访问任意数量的云端硬盘帐户,只要它拥有每个云端的访问令牌。