我已经阅读了这篇文章:authClient.login problems,但是Firebase Forge不接受基于哈希的Chrome扩展域名。是否有其他方法可以解决?目前我只是读取cookie
firebaseSessionKey
来假定我已登录。但这肯定不像让Firebase验证此会话密钥那样安全。firebaseSessionKey
来假定我已登录。但这肯定不像让Firebase验证此会话密钥那样安全。Firefox的F1插件遇到了类似的问题(http://f1.mozillamessaging.com/),您可以授权F1代表您在twitter/facebook上发布内容。该扩展还有一个网站,您可以在其中提供登录页面,并像通常在Web页面中一样进行操作。您需要一些代码来在Web页面和扩展之间进行通信,Chrome提供了必要的工具。
我建议采用同样的方法-在真实域上创建一个网页(Github pages非常适合此类情况),以与您的扩展配套使用。这意味着您的扩展无法脱机工作,但是您的登录或写入Firebase也无法脱机!
"www[dot]googleapis[dot]com/auth/plus.login"
所以这里发生的是,您将从扩展程序获取access_token,并使用authwihtoauthtoken指定Google作为提供程序,以及使用chrome.identity.getAuthToken()获取的access_token将其与请求一起发送到Firebase!https://www.firebase.com/docs/web/api/firebase/authwithoauthtoken.html
事实是,此访问令牌可以由任何其他应用程序发行,因此我们需要确保它是有效的并已为我们的应用程序发行。基本上,我们需要知道是否有中间人试图访问我们的数据库。https://developers.google.com/identity/protocols/OAuth2UserAgent#validatetoken
用例
在需要进行身份验证的请求中发送 ID 令牌。例如,如果您需要将数据传递到服务器,并且想要确保特定数据来自特定用户。
何时验证访问权限 除非您知道它们直接来自 Google,否则所有令牌都需要在您的服务器上进行验证。您从客户端应用程序接收到的任何令牌都必须经过验证。
Google 在以下网址提供了 Python 教程:
"github[点]com/googleplus/gplus-verifytoken-python"
因此,基本上发生的情况是:当您在 Firebase 中输入 CLIENT_ID 和 APP_SECRET 并启用 Google 身份验证时,Firebase 会为您执行此验证,而不是您在服务器上执行验证。
正确的做法是结合或使用相同的方式验证 client_secret 发行给了谁。Chrome 将为您提供 access_token,然后在 Firebase 的后端上检查此 access_token。