如何使用 chrome.identity.launchWebAuthFlow 缓存身份验证令牌?

Ero*_*lin 6 google-chrome-extension google-chrome-app

我正在使用chrome.identity.launchWebAuthFlow方法从我们的 OAuth2 服务器启动 OAuth2 令牌生成。

在 Identity API 文档中,指定对用户进行身份验证有两种可用的方法:getAuthTokenlaunchWebAuthFlow。我们使用后者是因为正如文档中所指定的:

如果您的应用程序使用自己的服务器来验证用户身份,则需要使用 launchWebAuthFlow。

我们正在努力缓存结果。在阅读 的文档时getAuthToken,似乎涉及到一些智能缓存。

Chrome 捕获响应并将 和 存储access_tokenrenew_token浏览器中(此处可见:)chrome://identity-internals/Chrome仅在过期时才access_token向 OAuth 服务器请求。access_token

然而,使用 时launchWebAuthFlow,我们很难使用 Chrome 缓存,而且它每次都会调用我们的 OAuth 服务器。

有谁知道如何使用API​​​​的这种方法缓存结果?

Rob*_*thi 4

getAuthToken 仅指使用 Google 自己的 api 进行身份验证,如果您想自己做类似的事情,则必须自己实现。

只需使用 chrome.storage 来存储传入的凭据,并在使用它们时,仅在经过足够的时间后才触发 launchWebAuthFlow,否则无论如何都会进行 fetch 调用,如果它未经身份验证返回,则刷新您的令牌

  • @Erowlin 不是你,我的 chrome 文档有很多问题 (5认同)
  • 这就是我做完的事情。是我的问题还是他们的文档中解释得很糟糕? (3认同)