我正在构建一个Chrome扩展程序:
在客户端,使用chrome.identity API,我能够成功检索一个短期访问令牌(使用隐式流),我可以使用它来从Google API获取数据。当令牌过期时,我可以在后台默默地获取另一个令牌。这部分工作正常。
另外,对于上面的用例#2,我想确保只有目标Google用户才能成功发布数据。为此,我正在考虑使用Google Sign-In JavaScript library,在成功的auth上检索ID令牌并将该ID令牌传递给我的API以进行服务器端验证,as noted here。
Google登录JavaScript库doesn’t appear to work in Chrome extensions。在尝试在扩展程序中实现登录按钮时,我看到了与该问题的作者相同的错误(“ Uncaught gapi.auth2.ExternallyVisibleError:无效的cookiePolicy ”)。
我希望避免以自定义方式管理OAuth / OpenID Connect流的任何部分。但是,使用chrome.identity.launchWebAuthFlow method,我 am 能够检索ID令牌,方法是使用response_type = id_token将用户定向到Google OAuth端点,添加正确的范围(“openid”和“电子邮件“,例如”和passing a nonce,如下所示:
https://accounts.google.com/o/oauth2/v2/auth?
client_id=[client_id]&
response_type=id_token&
scope=scope=openid%20email&
redirect_uri=https://<app-id>.chromiumapp.org/redirect&
state=[state_token]&
nonce=[nonce]
我有三个问题: