我有一个REST api,使用jwt令牌完成身份验证 . 为了使api更安全(用户和身份验证机制),我想使用firebase身份验证 . 我想知道我们可以使用firebase作为我的REST API的身份验证服务器 .
我的理解是客户端应用程序将用户名和密码发送到firebase服务器,他们将提供令牌 . 使用该令牌客户端应用程序将向我们的服务器发送api调用 . 我需要在我的服务器中集成firebase admin SDK,并使用admin SDK验证令牌以从我的数据库中获取数据 .
当我错的时候请纠正我 .
此外,我担心如何管理刷新令牌以保持我的应用程序登录 .
请帮我以正确的方式集成它,我使用nodejs / expressjs来创建API .
1 回答
是的,这是他们提供的服务之一:https://firebase.google.com/products/auth/
正确 . 通常的Firebase身份验证完全由客户端完成 .
但是,如果您需要特定的身份验证机制,例如LDAP / AD或其他形式的企业恶作剧,那么您需要创建自己的令牌,客户端将使用它来进行身份验证:https://firebase.google.com/docs/auth/admin/create-custom-tokens
正确 . 一旦客户端成功登录并检索了他们的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