Google chrome extension 如何从chrome.identity.getAuthToken()检测无效的身份验证令牌?

Google chrome extension 如何从chrome.identity.getAuthToken()检测无效的身份验证令牌?,google-chrome-extension,Google Chrome Extension,我的扩展名的onInstall钩子调用chrome.identity.getAuthToken()。如果这是我第一次运行应用程序,一切正常 我遇到的问题是,在测试过程中,我会取消访问权限,然后重新安装扩展。在此场景中,getAuthToken()返回缓存的无效令牌。一段时间后,当我尝试使用扩展时,我的扩展失败了。我想做的是检测扩展是否来自缓存,并立即将其删除,以便执行auth对话。如果我可以访问令牌的过期时间,我可以推断它的有效性,但好的,过期时间是不可见的 有没有关于如何围绕这一点进行编码的建

我的扩展名的onInstall钩子调用chrome.identity.getAuthToken()。如果这是我第一次运行应用程序,一切正常

我遇到的问题是,在测试过程中,我会取消访问权限,然后重新安装扩展。在此场景中,getAuthToken()返回缓存的无效令牌。一段时间后,当我尝试使用扩展时,我的扩展失败了。我想做的是检测扩展是否来自缓存,并立即将其删除,以便执行auth对话。如果我可以访问令牌的过期时间,我可以推断它的有效性,但好的,过期时间是不可见的


有没有关于如何围绕这一点进行编码的建议?

其中一个实用程序类,即,其处理方法如下:

  • 获取令牌(使用chrome.identity.getAuthToken())
  • 使用该令牌发出请求
  • 如果请求失败,则将其从缓存中清除(使用chrome.identity.removeCacheAuthToken())并请求一个新的。(它允许最多1次重试,因此如果问题不是令牌过期,它不会进入无限循环。)
  • 代码:

    GDocs.prototype.upload = function (blob, callback, retry) {
      var onComplete = function (response) {...}.bind(this);
      var onError = function (response) {
        if (retry) {
          // `removeCachedAuthToekn()` uses `chrome.identity.removeCachedAuthToken()`
          // to remove the token from cache and then requests a new one using
          // `chrome.identity.getAuthToken()`. Finally, it calls `upload()` again
          // passing the `retry` parameter with value `false` */
          this.removeCachedAuthToken(...);
        } else {
          // The failure is permanent...
        }
      }.bind(this);
    ...
    
    uploader = ...
    ...
    uploader.upload();
    

    谢谢你的建议。我已经想到了这一点,所以也许我应该在我的问题中加上“而不是实际尝试使用它”。在接受这一唯一选择之前,我会看看是否还有其他建议。再次感谢