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

时间:2018-05-16 15:05:59

标签: google-chrome-extension google-chrome-app

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

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

  

如果您的应用使用自己的服务器对用户进行身份验证,则需要使用launchWebAuthFlow。

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

Chrome会抓取回复并将access_tokenrenew_token存储在浏览器中(此处显示为chrome://identity-internals/)。当access_token过期时,Chrome会向{0}仅向请求access_token 服务器

但是,使用launchWebAuthFlow,我们一直在努力使用Chrome缓存,并且每次都会调用我们的OAuth服务器。

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

1 个答案:

答案 0 :(得分:2)

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

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