在接收访问令牌之前需要运行getAuthToken两次,为什么?

时间:2015-06-09 20:47:34

标签: javascript google-chrome-extension oauth-2.0 google-oauth

我想我需要服用一些阿司匹林......把头撞到墙上...... 3天仍然无处可去......我只是不明白......

从Chrome扩展程序我从background.js调用getAuthToken,它可能是有史以来最基本的脚本:

function getAuthToken(){            
        chrome.identity.getAuthToken(   
        {'interactive': true},
            function(token){                            
                console.log(token);         
            } 
        );     
};

清单摘录

"content_security_policy": "script-src https://*.google.com 'unsafe-eval'; object-src 'self'",
  "oauth2": {
    "client_id": "<client_id>.apps.googleusercontent.com",
    "scopes": ["https://www.googleapis.com/auth/gmail.modify"]
  } 

这就是:

  1. 加载扩展程序
  2. 启动OAuth2,询问(弹出)并授予对GMail的访问权限
  3. 控制台日志:token = undefined和未选中runtime.lastError while 运行identity.getAuthToken:授权页面不能 已加载(lastError 133)
  4. 在Chrome令牌缓存中,我看到一个新的但不存在的令牌(无令牌字符串)
  5. 重新加载扩展程序
  6. 不会要求Gmail访问
  7. 现在正确接收了令牌
  8. 为什么我需要两次运行getAuthToken?我对GMail使用第2步认证,但理解这只适用于前端。

    如果你碰到了类似的东西,请与我分享,如果没有超过5行代码那么令人沮丧。

0 个答案:

没有答案