【问题标题】:Use Google Firebase Authentication without 3rd Party Cookies在没有 3rd Party Cookie 的情况下使用 Google Firebase 身份验证
【发布时间】:2018-07-23 06:56:09
【问题描述】:

我目前正在尝试使用社交媒体登录,并意识到这些登录的传递方式有些奇怪,这是因为我的工作场所与大多数办公室一样,将阻止 3rd 方 cookie 作为安全策略。

Google Firebase Authentication 使用 3rd 方 cookie,因此如果我尝试使用 Firebase,我会被重定向到 Google 页面(如预期的那样),但是当我在登录后被重定向回原始网页时(并且 Firebase 会尝试设置 cookie),我收到一条错误消息 This browser is not supported or 3rd party cookies and data may be disabled.

但是,MongoDB Stitch 以某种方式工作,我能够实际登录,即使禁用了 3rd 方 cookie。我真的无法理解为什么会这样,但我希望这里有人能对此有所了解。如果有帮助,MongoDB Stitch 会要求您在 Google 控制台中将 https://stitch.mongodb.com 设置为原始 URI,将 https://stitch.mongodb.com/api/client/v2.0/auth/callback 设置为授权重定向 URI——而您必须在 MongoDB 控制台中设置您自己的网站 URI,我认为这可能会有所不同?

无论如何,MongoDB Stitch 的文档严重不足(由于它仍处于公开测试阶段),所以如果可能的话,我真的很想采用 Google Firebase 的方式。

  1. 有谁知道 MongoDB Stitch 如何绕过设置 3rd Party Cookies
  2. 如何在第 3 方 Cookie 被禁用时使用 Google Firebase 身份验证

【问题讨论】:

标签: cookies oauth-2.0 firebase-authentication google-authentication mongodb-stitch


【解决方案1】:

您是否尝试过使用gapi.auth2,即用于Javascript 的Google sign in library? 上次我检查时,它在禁用 3rd 方 cookie 的情况下工作。您可以使用它来获取 Google ID 令牌或访问令牌,然后登录 Firebase:

firebase.auth().signInWithCredential(firebase.auth.GoogleAuthProvider.credential(googleIdToken, googleAccessToken))...`

【讨论】:

  • 谢谢@bojeil - 我确实成功地使用了gapi.auth2 并禁用了第 3 方 cookie,但你知道为什么它有效,但不是通常的 Firebase?听起来我对 Firebase 很着迷,但这只是因为如果我使用的是 Google+Facebook+Twitter+Email,我真的很想避免使用来自四个不同提供商的四个不同库:使用 FirebaseUI、AWS Cognito 之类的东西,或 MongoDB Stitch 意味着我只需要担心一个库。你认为使用gapi.auth2 和它的等价物是一种必要的邪恶吗?
  • 这是一个实现细节。 Google 登录库使用其他方式将结果传递回原始页面。大多数用户不会禁用 3rd 方 cookie,因为它会破坏很多应用程序。这是一个边缘案例。如果您的应用适合禁用 3rd 方 cookie 的用户类型,则您将不得不依赖使用 OAuth 提供程序库。
  • 我尝试了 gapi.auth2 方法,但我收到一个错误,提示它不会在禁用 3rd 方 cookie 的情况下初始化。似乎这也需要启用第三方 cookie。是否可以在禁用第三方 cookie 的情况下在 firebase 上使用社交注册?
  • 在禁用 3rd 方 cookie 的情况下无法使用 Firebase 身份验证弹出/重定向流。
  • 是否有另一种使用 Google 登录的 Firebase Auth 方式,或者 Firebase Auth 与禁用 3rd 方 cookie 的 Google 签名完全不兼容?我使用 Firebase 进行大多数身份验证。有没有办法让“使用 Google 登录”按钮完全禁用 Firebase 和第三方 cookie?有哪些替代方案?
猜你喜欢
  • 2020-01-10
  • 2013-04-21
  • 2019-05-10
  • 1970-01-01
  • 2011-10-21
  • 2022-01-03
  • 1970-01-01
  • 2022-11-30
  • 2012-03-22
相关资源
最近更新 更多