2017-08-23 42 views
1

我是一个相当新的开发者。我没有OAuth2的经验,每次我尝试阅读它的解释,我似乎无法弄清楚它在实际意义上的含义。用Python进行用户认证如何在Google Sheets API中工作?

这是我正在努力完成的。我正在用Python编写一个应用程序,我希望能够阅读任意的Google工作表并处理数据。我遵循Google官方指南here并设置了quickstart.py示例。它工作正常,我已经能够扩展它来做其他事情没有任何问题 - 保持在快速入门指南中创建的特定文件设置。

现在,这里是我困惑的地方。假设我希望其他人能够使用他们自己的电子表格和Google帐户使用我的应用程序。应用程序无法运行所需的client_secret.json文件吗?但是,是不是(它的名字显然会暗示)应该保密?他们需要创建自己的凭据,对吧?但是,您是否需要client_secret.json文件才能首先创建凭据?这一切如何工作?

需要做些什么才能让某人能够运行Python脚本并通过他们的账户通过他们的账户连接到电子表格?我个人只是不明白,除了我自己的Google帐户和指南中介绍的设置之外,OAuth2应该如何应用于这种特殊情况。

也许这个问题似乎太广泛了。如果是这样,这里是底线:我如何使用链接here上列出的Python快速入门示例,并使其成为任何人都可以在计算机上运行该脚本并使其工作? (引导他们通过所有需要的设置,如任何需要访问其Google帐户的普通应用程序)

回答

1

也许一些混淆源于client_secret中的“客户端”一词。客户是你的应用程序。是的,只要有client_secret的人都可以模拟你的应用,它的细节应该保密。除了令人讨厌之外,这种模仿的影响很小,因为它不会延伸到Eve能够访问Alice的数据。

您的应用的每个用户都需要通过OAuth舞蹈才能让应用访问其数据。此权限表现在刷新令牌和访问令牌中,并且每个用户都需要保持私有状态。

如果您确实分发了client_secret,请考虑使用牺牲品(即假的)Google帐户。这样,任何滥用行为都不会影响您的主要Google帐户。

另一种可以考虑的方法是向用户提供有关如何在开发控制台上注册他们自己的应用程序的说明,从而生成自己的client_secret。

+0

所以我应该在提交git时包含'client_secret'文件还是不安全?如果'client secret'的内容刚刚复制到python脚本中的一个变量中,并在将脚本编译为可执行文件之前从那里使用,那么这会不是个好主意? –

+0

我想这取决于你的git回购是如何公开的。作为一个经验法则,不应该犯下秘密,但根据您的使用情况它可能有意义。我已经更新了我的答案,并考虑了另一个选项。 – pinoyyid

相关问题