我正在使用Chrome Identity API,为用户提供Chrome扩展程序上的Google身份验证。
我遵循了Google的官方教程:link Chrome Identity API
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);
});
答案 0 :(得分:13)
问题已解决!
我的Chrome extension
的应用ID 与Google Console Developpers
中的应用ID 不匹配
要首先上传您的扩展程序,然后从Chrome中复制该ID并在Google控制台开发者中进行设置!
每次在Google Chrome中更改时,您都必须在Google控制台中对其进行更新
答案 1 :(得分:6)
接受的答案不正确。您可以将其上传到Webstore,发布它,然后从Webstore安装它。安装完成后,在Mac上找到已安装的扩展程序应用目录(~/Library/Application\ Support/Google/Chrome/Default/Extensions/<ext id>
),然后将已安装的key
中的manifest.json
密钥复制到源代码manifest.json
中。将key
字段添加到manifest.json
后,您的应用ID在本地开发过程中不会更改。
答案 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”。