首页 > 解决方案 > 如何为第三方提供 Firebase 身份验证接口?

问题描述

(以下使用的“Superpoints”和“Megashop”是假商家名称)

我正在使用 Firebase Auth 对我的(Android)应用程序(“Superpoints”)中的用户进行身份验证。我的用户可以通过使用我的应用赚取积分,他们可以在以后支付时消费。

我想通过以下方式与合作伙伴(“Megashop”)集成:

  1. Alice 在她的 Android 手机上打开 Superpoints 应用程序。
  2. 在应用程序中,她点击“Megashop 广告系列”。
  3. superpoints.megashop.com 的 Web 浏览器或 Web 视图(无论哪个对我来说都可以)打开。打开的页面有一个按钮,例如“使用 Superpoints 帐户登录”。
  4. Alice 单击“使用 Superpoints 帐户登录”并提供她的凭据(可以是电子邮件+密码、使用电话号码登录、使用 Google 帐户登录)。
  5. 系统检查 Alice 的账户是否存在于我的用户数据库中,并将响应发送回 Megashop,其中包含 Alice 的 Superpoints 会员 ID 和她的余额(例如:“{ memberId: 100500, points: 42 }”)。
  6. 爱丽丝在 Megashop 购买东西后,他们的结账钩子向 HTTPS 端点发送一个云功能请求,该云功能会在爱丽丝的余额(例如https://app.superpoints.com/accrual ?partner=megashop&memberId=100500&points=250)。

在我的应用程序网站上,我使用 FirebaseUI Auth 进行身份验证,在应用程序中我还使用 FirebaseUI(Android 库)。

现在最后的问题是:如何在第三方网站上验证我的用户?最佳实践是什么?我应该为第三方构建某种网关,还是有更简单的方法?

标签: firebasefirebase-authenticationgoogle-cloud-functions

解决方案


这是OAuth的经典案例。

据我所知,Firebase Auth 不支持充当 OAuth 提供者。


推荐阅读