我使用chrome.identity.launchWebAuthFlow
方法从OAuth2服务器启动OAuth2令牌生成。
在Identity API文档中,指定要对用户进行身份验证,有两种可用的方法:getAuthToken
和launchWebAuthFlow
。我们使用后者,因为在文档中指定:
如果您的应用使用自己的服务器对用户进行身份验证,则需要使用launchWebAuthFlow。
我们正在努力缓存结果。在阅读getAuthToken
的文档时,似乎涉及到一些智能缓存。
Chrome会抓取回复并将access_token
和renew_token
存储在浏览器中(此处显示为chrome://identity-internals/
)。当access_token
过期时,Chrome会向{0}仅向请求access_token
服务器 。
但是,使用launchWebAuthFlow
,我们一直在努力使用Chrome缓存,并且每次都会调用我们的OAuth服务器。
有没有人知道如何使用API的这种方法缓存结果?
答案 0 :(得分:2)
getAuthToken仅指使用Google自己的api进行身份验证,如果您想自己做类似的事情,则必须自己实现。
只需使用chrome.storage来存储传入的凭据,并在使用它们时使用,然后仅在经过足够的时间后才启动launchWebAuthFlow,否则无论如何都要进行fetch调用,如果返回的消息未经身份验证则刷新令牌