python - 用户身份验证如何在使用 Python 的 Google Sheets API 中进行?

标签 python oauth oauth-2.0 google-oauth google-sheets-api

我是一个相当新的开发人员。我没有 OAuth2 经验,每次我尝试阅读它的解释时,我似乎都无法弄清楚它在实际意义上的含义。

这就是我想要实现的目标。我正在用 Python 编写一个应用程序,我希望能够读取任意 Google 表并操作数据。我已经按照Google的官方指南here进行操作并设置 quickstart.py 示例。它工作得很好,而且我已经能够将它扩展到做其他事情,没有任何问题 - 维护了快速入门指南中创建的特定文件设置。

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

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

也许这个问题似乎范围太广了。如果是这样,底线如下:如何使用链接 here 中概述的 Python 快速入门示例并使任何人都可以在自己的计算机上运行该脚本并使其正常工作? (指导他们完成所有需要的设置,就像任何需要访问其 Google 帐户的普通应用程序一样)

最佳答案

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

您的应用程序的每个用户都需要完成 OAuth 舞蹈才能让应用程序访问其数据。该权限体现在刷新 token 和访问 token 中,每个用户都需要对这些 token 保密。

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

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

关于python - 用户身份验证如何在使用 Python 的 Google Sheets API 中进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45850121/

相关文章:

oauth - 从 Chrome 扩展程序访问 Google 文档

python - 寻找最大的重复子串

python - 我必须将监听套接字绑定(bind)到哪个主机?

python - Google App Engine 中的服务器发送事件 (SSE)

python - Auth0 PKCE Grant 无法验证代码验证器

c#-4.0 - 'Google.Apis.Json.NewtonsoftJsonSerializer' 的类型初始值设定项抛出异常

python - 基于索引的python列表中的优雅切片

c# - API 应用程序的 Azure 服务主体身份验证

oauth-2.0 - Salesforce 动态 OAuth 2.0 回调 uri

java - 有没有办法使用纯 Java 通过 OAuth 2.0 向自己授权?