【问题标题】:Graphql Apollo server and firebase authenticationGraphql Apollo 服务器和 firebase 身份验证
【发布时间】:2022-03-15 00:51:02
【问题描述】:

我有 graphql api 服务器并从我的颤振应用程序调用 api。

现在我需要实现登录认证。所以我决定使用 firebase 身份验证。

我需要电子邮件、谷歌和 Facebook 登录。

我有点困惑如何验证用户。

  1. 从我的 Flutter 应用程序中,直接使用 firebase 进行身份验证并获取令牌。如果得到令牌调用创建用户 api 并创建用户。当然,我会传递令牌并针对 firebase 验证令牌。

  2. 在我的 Apollo 服务器中创建 SignIn、SignInWithGoogle 和 SignInWithFacebook 端点并从我的 Flutter 中调用。

常见的做法是什么?

【问题讨论】:

    标签: firebase graphql google-cloud-functions apollo-server


    【解决方案1】:

    我使用类似的堆栈构建了 Firebase Auth 来处理使用电子邮件、电话和社交的登录,然后将令牌传递到后端以验证经过身份验证且有效的用户正在发出这些请求。我正在使用 nodejs/graphql/mongodb 后端。使用中间件对每个请求进行身份验证,甚至处理 graphql 突变中的推送通知。

    第一种方法是请求登录到 Firebase 并检索用户凭据。

    第二种方法是向服务器发送请求,服务器向firebase发送请求,firebase将凭据返回给服务器,然后服务器将凭据返回给您。

    基本上走简单的路线,节省服务器成本,无需调用服务器,只需在客户端直接调用firebase即可。当您在客户端执行此操作时,您可以访问 authStateChanges 并且令牌 Firebase 也为您提供,这将使您的生活变得更加轻松。

    【讨论】:

    • 谢谢。我也会这样做。
    • 没问题!如果您需要有关如何设置的指导,请发送消息。
    猜你喜欢
    • 2019-02-25
    • 2016-12-13
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 2018-05-23
    • 2020-08-17
    • 2020-04-03
    相关资源
    最近更新 更多