Подтвердить что ты не робот

Chrome.identity.getAuthToken не работает

Я работаю с API-интерфейсом Chrome Identity, чтобы предоставить пользователям аутентификацию Google в моем расширении Chrome.

Я следил за официальным руководством Google: связать API удостоверения подлинности Chrome

  • Я добавил разрешения manifest.json и идентификатора клиента и Области
  • чтобы вызвать Authentification, я добавил этот код в свой 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); 
            });
4b9b3361

Ответ 1

Проблема решена!

идентификатор приложения моего Chrome extension не совпадает с моим идентификатором приложения в Google Console Developpers Чтобы избежать этого, сначала загрузите свой Расширение, затем скопируйте ID из Chrome и установите его в Google Console Developpers! вы должны обновлять его в консоли Google каждый раз, когда вы меняете его в Google Chrome

enter image description here

Ответ 2

Принятый ответ неверен. Вы можете загрузить его в интернет-магазин, опубликовать его, а затем установить из интернет-магазина. После установки найдите dir установленного приложения расширения (~/Library/Application\ Support/Google/Chrome/Default/Extensions/<ext id> на Mac) и скопируйте ключ key из установленного manifest.json в исходный код manifest.json. После добавления поля key в manifest.json идентификатор вашего приложения не изменится во время локальной разработки.

Источник: https://developer.chrome.com/apps/app_identity#copy_key

Ответ 3

Для другого пользователя, который может столкнуться с проблемой того, что chrome.identify.getauthtoken не запускается или вы входите в систему, и ничего не происходит.

Проверьте свой манифест и уменьшите его до минимума. Например, "oauth2": {"client.id": "вдоль строки", "области видимости": ["бла", "openid", "бла"]}. Имея openid в массиве, обратный вызов просто не сработал, ни предупреждения, ни ничего.

Наличие openid внутри моих областей внутри oauth2 каким-то образом блокировало обратный вызов от запуска.