0

我想在 Firebase 网络应用中使用 Google Pay。用户在应用程序中登录 Google 帐户。我已经为此测试了 Google Developers 的示例代码。它似乎工作正常。

除非我从 Firebase 应用程序中退出。然后 Google Pay 代码似乎仍然有效。显然现在使用的是我登录 Google Chrome 的帐户。

所以我不确定 Google Pay 看到的是哪个用户。我可以测试一下,但我需要确定。这应该如何工作?它记录在哪里?

4

1 回答 1

1

无论 Web 应用程序如何托管(Firebase 或其他方式),Google Pay 都会在当前登录的 Google 用户的上下文中启动。

一种验证方法是访问https://pay.google.com/。它将向您显示当前登录用户的付款详细信息。


编辑:回应澄清(道歉的长度)

我想在 Firebase 网络应用中使用 Google Pay。

假设在这种情况下是您的开发人员

除非我从 Firebase 应用程序中退出。

假设在这种情况下是您的用户,退出 Web 应用程序而不是 Firebase 控制台。

用户在应用程序中登录 Google 帐户。

网络应用程序使用 Google 身份验证用户 - 对吗?

它似乎工作正常。

除非我从 Firebase 应用程序中退出。然后 Google Pay 代码似乎仍然有效。

您描述的场景是否如下?

  1. 用户未登录 Google
  2. 用户使用 Google 身份登录 Web 应用程序并显示到 Google 登录屏幕
  3. 用户在应用内点击 Google Pay 按钮 - 一切正常
  4. 用户退出 Web 应用程序
  5. 用户在退出 Web 应用程序后返回到 Web 应用程序?
  6. 用户以匿名用户身份从网络应用程序内点击 Google Pay 按钮(从网络应用程序的角度来看) - 这会显示 Google 用户的付款详细信息,这不是您所期望的

如果是这样,那么:

  • 第 2 步:发生两件事
    • 谷歌设置了一个cookie来跟踪用户的身份
    • Google 会向您的应用返回一个身份验证令牌,您的应用通常会使用此身份验证令牌来维护会话状态
  • 第 3 步:使用第 2 步中设置的 cookie,Google 提供相关的付款方式
  • 第 4 步:退出 Web 应用程序应该清理用户的 Web 应用程序会话状态,但不会让用户退出 Google
  • 第 6 步:由于 Google cookie 仍然存在,Google Pay 继续呈现用户的付款详情

从我的角度来看,这是按预期工作的。

Web 应用程序的会话与 Google 会话是分开的,可以将其视为使用 Google 引导其自己的会话的 Web 应用程序。一旦被引导,它们就会彼此断开连接。

用户可以在引导后退出 Google,这不会影响 Web 应用程序。如果用户以其他用户身份登录 Google,他们将收到不同的 Google Pay 配置文件,并且尽管以第一个 Google 身份登录 Web 应用程序,他们应该能够使用第二个 Google 身份的详细信息完成付款。

您应该能够通过在退出 Web 应用程序后访问 https://pay.google.com/来验证此行为,然后在退出 Google 后再次访问,然后以不同的身份再次登录。

于 2019-09-20T19:12:48.070 回答