Google Calendar API 对 token.json 的理解

问题描述 投票:0回答:1

我正在使用 Google 日历 API,特别是 python 快速入门,但语言并不重要。

来自 https://developers.google.com/calendar/api/quickstart/python 的示例有:

 if not creds or not creds.valid:
    if creds and creds.expired and creds.refresh_token:
      creds.refresh(Request())
    else:
      flow = InstalledAppFlow.from_client_secrets_file(
          "credentials.json", SCOPES
      )
      creds = flow.run_local_server(port=0)
    # Save the credentials for the next run
    with open("token.json", "w") as token:
      token.write(creds.to_json())

我正在开发一个网站,主要是服务器端。人们将登录并能够创建日历,服务器将允许他们创建日历,并根据发生的事件自动添加事件。

问题1: 我的问题是关于

token.json
,该文件是在所有用户之间共享的,还是应该为每个人创建一个分隔符文件?

问题2: 是否应该备份,因为如果我丢失了文件,那么每个人都会被注销吗?

python google-oauth google-calendar-api google-api-python-client
1个回答
0
投票

问题1:我的问题是关于token.json,该文件是在所有用户之间共享的,还是应该为每个人创建一个分隔符文件?

Token Json 是单用户的。事实上,当您编写代码时,它是单用户的。 示例所做的第一件事是检查文件是否存在

if os.path.exists("token.json"):

如果这样做,它将加载该文件中的凭据。

问题2:是否应该备份,因为如果我丢失了文件那么所有人都会被注销吗?

是的,您可能应该备份它,因为授权该应用程序的用户将被提示再次授权您的应用程序。注意这是授权不是认证,没有注销

备注:

您正在遵循的代码为桌面应用程序授权凭据它是为桌面应用程序设计的,正如所写的那样,它是单用户的。

它也无法在托管网页上运行。

flow = InstalledAppFlow.from_client_secrets_file(
      "credentials.json", SCOPES
  )
  creds = flow.run_local_server(port=0)

将在其运行的计算机上运行授权请求,除非用户可以登录到网络服务器,否则它不会工作。

© www.soinside.com 2019 - 2024. All rights reserved.