首页 文章

使用firebase admin sdk进行REST api身份验证

提问于
浏览
0

我有一个REST api,使用jwt令牌完成身份验证 . 为了使api更安全(用户和身份验证机制),我想使用firebase身份验证 . 我想知道我们可以使用firebase作为我的REST API的身份验证服务器 .

我的理解是客户端应用程序将用户名和密码发送到firebase服务器,他们将提供令牌 . 使用该令牌客户端应用程序将向我们的服务器发送api调用 . 我需要在我的服务器中集成firebase admin SDK,并使用admin SDK验证令牌以从我的数据库中获取数据 .

当我错的时候请纠正我 .

此外,我担心如何管理刷新令牌以保持我的应用程序登录 .

请帮我以正确的方式集成它,我使用nodejs / expressjs来创建API .

1 回答

  • 5

    我们可以使用firebase作为REST API的身份验证服务器 .

    是的,这是他们提供的服务之一:https://firebase.google.com/products/auth/

    我的理解是客户端应用程序将用户名和密码发送到firebase服务器,他们将提供令牌 .

    正确 . 通常的Firebase身份验证完全由客户端完成 .

    但是,如果您需要特定的身份验证机制,例如LDAP / AD或其他形式的企业恶作剧,那么您需要创建自己的令牌,客户端将使用它来进行身份验证:https://firebase.google.com/docs/auth/admin/create-custom-tokens

    使用该令牌客户端应用程序将向我们的服务器发送api调用 .

    正确 . 一旦客户端成功登录并检索了他们的ID令牌,服务器端就需要通过中间件验证ID令牌:https://firebase.google.com/docs/auth/admin/verify-id-tokens .

    此外,我担心如何管理刷新令牌以保持我的应用程序登录 .

    只要客户端使用适当的方法来检索ID令牌,您就不必担心这一点 . 例如,在Web端,客户端将调用:https://firebase.google.com/docs/reference/js/firebase.User#getIdToken,其中指出(强调我的):

    如果当前令牌尚未过期,则返回当前令牌,否则将刷新令牌并返回新令牌 .

    如您所见,客户端Firebase SDK可以为您处理所有事情 . 服务器端不需要跟踪ID令牌,刷新令牌或其他任何内容 . 您需要做的就是验证令牌,就是这样 .

    有关服务器端验证的更多详细信息,请参阅我之前的答案:Firebase authentication using NodeJS

相关问题