如何从Chrome扩展程序中获取Google OAuth访问权限 - 在选项之间进行权衡

时间:2017-05-09 17:25:41

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

编辑:如果它能帮助其他人找到这个,那么Gaia在Chrome重启后清除Cookie的事实就是众所周知的行为。他们建议使用Chrome登录。查看更多here

核心问题:如何在不使用chrome.identity API中的getAuthToken method的情况下从Chrome扩展程序中在后台获取Google OAuth访问令牌?此方法强制用户登录Chrome,这对我们的应用来说并不理想。我也无法使用身份API中公开的本机方法检索OpenID Connect ID令牌。

目前,我使用chrome.identity API中的launchWebAuthFlow method获取令牌。此方法启动了一个" Identity API范围批准UI"用户进行初始OAuth授权的窗口。此窗口(称为" gaia")具有自己的会话/ cookie数据,与浏览器会话分开。

在初始OAuth授权后,扩展程序会定期在后台检索访问令牌,然后从Google API(例如云端硬盘)获取数据。这很好用。但是,当用户退出并重新打开Chrome时,提取访问令牌失败 - gaia在Chrome重新启动时会丢失其会话Cookie,因此运行launchWebFlowAuth方法无法完成,因为Google无法对用户进行身份验证(除非我们再次提示用户登录Identity API范围审批用户界面)。 Others似乎遇到了同样的问题。

Google登录会非常理想,但它doesn't work in Chrome extensions(我得到的相同" 无效的cookiePolicy "错误作为该作者问题)。

非常感谢有关如何最好地处理此用例的任何建议!

0 个答案:

没有答案