我正在尝试制作一个可以通过 google 进行身份验证的 Firefox(以及后来的 chrome)扩展。
\n我按照此处概述的步骤进行操作:https ://github.com/mdn/webextensions-examples/tree/master/google-userinfo
\n当我遵循他们的格式时,一切都会按预期进行。但是,一旦单击工具栏按钮,他们的示例就会启动身份流。
\n我正在尝试使其适应从下拉弹出窗口工作,该弹出窗口还显示我自己的应用程序 un:pw 登录,然后是使用 Google 登录的选项。
\n当我从弹出窗口启动身份流程时,一切正常,直到登录后收到回调。
\n该应用程序打开一个弹出窗口,我登录,弹出窗口关闭,代码中没有任何内容继续,并且我收到一条错误消息,其中包含以下内容:
\n\ng_CS[e] is null 2 background.js:1\n receiveCS moz-extension://cbd583bf-c5d9-9f48-a42b-8c3ace7a778b/background.js:1\n onconnect_listener moz-extension://cbd583bf-c5d9-9f48-a42b-8c3ace7a778b/background.js:1\n e moz-extension://cbd583bf-c5d9-9f48-a42b-8c3ace7a778b/lpfulllib.js:1\n apply self-hosted:2159\n applySafeWithoutClone resource://gre/modules/ExtensionCommon.jsm:614\n asyncWithoutClone resource://gre/modules/ExtensionCommon.jsm:2428\nRun Code Online (Sandbox Code Playgroud)\n如果我首先将请求存储在变量中,然后返回它,我只会看到以下内容
\nmade it to getaccessToken authorize.js:85:11\nmade it to authorize authorize.js:73:11\nPromise { "pending" }\n\xe2\x80\x8b\n<state>: "pending"\n\xe2\x80\x8b\n<prototype>: PromiseProto { \xe2\x80\xa6 }. authorize.js:80:11\n\nRun Code Online (Sandbox Code Playgroud)\n当我获取创建的内容auth_url并将其添加为按钮的链接时,它将登录屏幕作为新选项卡打开。然后登录时,我会在同一选项卡中收到回调响应,并且我可以在 url 中看到身份验证成功并且也是redirect url正确的。
那么问题似乎是我的弹出窗口收到回调时发生了什么?
\n这是我的清单 json
\n{\n "manifest_version": 2,\n "name": "Learnify",\n …Run Code Online (Sandbox Code Playgroud)