我正在使用chrome.identity.launchWebAuthFlow
方法从我们的OAuth2服务器启动OAuth2令牌生成。
在身份 API 文档中,指定要对用户进行身份验证,有两种可用方法:getAuthToken
和launchWebAuthFlow
。我们使用后者是因为如文档中指定的那样:
如果您的应用程序使用自己的服务器对用户进行身份验证,则需要使用 launchWebAuthFlow。
我们正在努力缓存结果。在阅读getAuthToken
的文档时,似乎涉及一些智能缓存。
Chrome 会捕获响应并将access_token
和renew_token
存储在浏览器中(在此处可见:chrome://identity-internals/
)。Chrome 仅在OAuth 服务器过期时请求access_token
OAuth 服务器access_token
。
但是,使用launchWebAuthFlow
,我们正在努力使用 Chrome 缓存,它每次都会调用我们的 OAuth 服务器。
有谁知道如何使用API的这种方法缓存结果?
getAuthToken仅指使用Google自己的API进行身份验证,如果您想自己做类似的事情,则必须自己实现。
只需使用 chrome.storage 来存储传入的凭据,并在使用它们时,只有在经过足够时间的情况下才会触发 launchWebAuthFlow,否则无论如何都要进行获取调用,如果它未经身份验证返回,则刷新您的令牌