chrome.identity.getAuthToken不起作用

时间:2015-06-30 14:49:17

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

我正在使用Chrome Identity API,为用户提供Chrome扩展程序上的Google身份验证。

我遵循了Google的官方教程:link Chrome Identity API

  • 我添加了对 manifest.json 客户端ID 范围
  • 的权限
  • 触发身份验证我在 Background.js
  • 中添加了此代码
  

chrome.identity.getAuthToken

问题是当我执行扩展程序时,我被重定向到此登录页面

  

铬://铬登入/源= 5

但在成功进行身份验证后,我又被重定向到登录页面

问题是什么?

的manifest.json

{
  "name": "My Extension",
  "short_name": "Ex App",
  "version": "0.1",
  "description": "description",
  "manifest_version": 2,
  "icons": { "128": "ICONE.png", "48": "ICONE1.png" },
  "permissions": ["contextMenus", "identity", "cookies", "http://*/*",   "https://*/*", "<all_urls>", "unlimitedStorage"],
  "browser_action": {
    "default_title": "Title",
    "default_icon": "imgIcone.png"
  },
  "oauth2": {
        "client_id": "xxxxxxx",
        "scopes": [
            "https://www.googleapis.com/auth/userinfo.email"
    ]   
},   

  "background": {
    "scripts": ["background.js"]
  },

    "content_scripts"   : [
{
  "matches": ["*://*.google.com/*"],
  "js": ["gadget/js/jquery.js","gadget/js/contactcard.js"],
  "css": ["gadget/css/contactcard.css"],
  "all_frames": true
  }],  

  "content_security_policy": "script-src 'self' 'unsafe-eval' https://apis.google.com/; object-src 'self'",
  "web_accessible_resources": ["img.png","gadget/css/contactcard.css","gadget/img/extension/crec.png"]
}

Background.js:

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

4 个答案:

答案 0 :(得分:13)

问题已解决!

我的Chrome extension应用ID Google Console Developpers中的应用ID 不匹配 要首先上传您的扩展程序,然后从Chrome中复制该ID并在Google控制台开发者中进行设置! 每次在Google Chrome中更改时,您都必须在Google控制台中对其进行更新

enter image description here

答案 1 :(得分:6)

接受的答案不正确。您可以将其上传到Webstore,发布它,然后从Webstore安装它。安装完成后,在Mac上找到已安装的扩展程序应用目录(~/Library/Application\ Support/Google/Chrome/Default/Extensions/<ext id>),然后将已安装的key中的manifest.json密钥复制到源代码manifest.json中。将key字段添加到manifest.json后,您的应用ID在本地开发过程中不会更改。

来源:https://developer.chrome.com/apps/app_identity#copy_key

答案 2 :(得分:0)

对于其他用户,他们可能会遇到chrome.identify.getauthtoken无法启动或您登录后没有任何反应的问题。

检查清单并将其减少到最低限度。例如 “ oauth2”:{“ client.id”:“ alongstring”,“ scopes”:[“ bla”,“ openid”,“ bla”]}。数组中有openid时,回调根本不会触发,没有警报,什么也没有。

在oauth2的作用域内有openid,以某种方式阻止了回调被触发。

答案 3 :(得分:0)

如果chrome.identity.getAuthToken中的回调根本无法触发,请确保您在manifest.json中使用的是“ browser_action”,而不是“ page_action”。