当前位置: 首页 > 知识库问答 >
问题:

为google Oauth2延长access_token的寿命

阳修永
2023-03-14
    null
def get_service(ServiceName, API_VERSION):
    flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
    creds = json.loads(Path(CLIENT_SECRETS_FILE).read_text())

    if Path(token).exists():
      access_token = Path(token).read_text()
      credentials = Credentials(
        None,
        refresh_token=access_token,
        token_uri="https://accounts.google.com/o/oauth2/token",
        client_id=creds['installed']['client_id'],
        client_secret=creds['installed']['client_secret']
      )
    else:
      credentials = flow.run_console()
      with open(token, 'w') as filetowrite:
            filetowrite.write(credentials.token)

    return build(ServiceName, API_VERSION, credentials = credentials)

共有1个答案

董翰池
2023-03-14

不。这不可能。ofc很难证明smth是不可能的。但理由如下:

想法是,出于安全原因,令牌是短暂的。应该获得一个额外的刷新令牌。一旦oauth令牌过期,使用refresh令牌获得一个新的oauth令牌,或者更好地获得一个新的令牌对。

这降低了窃听令牌的风险。即使攻击者设法获得令牌,其有效时间也很短。如果服务提供者需要,还可以撤消特定的令牌。

 类似资料:
  • 我有一个程序,它的函数将指针作为arg和main。main正在创建n个线程,每个线程根据传递的在不同的内存区域上运行该函数。然后加入线程,main在区域之间执行一些数据混合并创建n个新线程,这些线程执行与旧线程相同的操作。 为了改进程序,我想让线程保持活动状态,消除创建它们所需的长时间。线程应该在主线程工作时Hibernate,并在它们必须再次出现时通知。同样,当线程工作时,主线程应该等待,就像连

  • 问题内容: 我目前正在尝试诊断应用程序中的缓慢内存泄漏。到目前为止,我掌握的事实如下。 我有4天运行该应用程序的堆转储。 该堆转储包含约800个WeakReference对象,这些对象指向保留40mb内存的对象(所有对象都是同一类型,出于这个问题的目的,我将其称为Foo)。 Eclipse内存分析工具显示,这些WeakReferences引用的每个Foo对象均未被其他任何对象引用。我的期望是,这应

  • 问题内容: 我在自学Java线程时,发现有些令我困惑的地方。我做了一个叫做实现的课程。run方法仅打印“ Hello World”,休眠一秒钟,然后重复。 在我的主要方法中,我有: 如我所料,我看到了“ Hello World”和“ Done”。快速打印,这意味着main方法已到达末尾,但是我没想到的是,即使到达main末尾后,我开始运行的线程仍保持运行。 为什么即使退出主程序后程序仍继续执行?我

  • 我有一个Vuejs应用程序,我试图添加谷歌认证。我使用这个插件https://www.npmjs.com/package/vue-google-oauth2在前端生成授权代码,然后将其发送到我的后端,以便它可以获得用户凭据。 以下是前端的代码: 在此之前,我成功地获取了授权代码,并将其发送到使用node编写的后端。js基于官方谷歌文档。https://github.com/googleapis/g

  • 延长模块可以用于连接两条 5V通用连接线,延长其使用长度。 连接示意

  • 延长模块可以用于连接两条 5V通用连接线,延长其使用长度。 连接示意