簡體   English   中英

使用Firebase Admin SDK進行REST API身份驗證

[英]REST api authentication using firebase admin sdk

我有一個REST API,並且身份驗證是使用jwt令牌完成的。 為了使may api更安全(用戶和身份驗證機制),我想使用Firebase身份驗證。 我想知道我們能否將firebase用作我的REST API的身份驗證服務器。

我的理解是,客戶端應用程序會將用戶名和密碼發送到Firebase服務器,並提供令牌。 使用該令牌客戶端應用程序會將api調用發送到我們的服務器。 我需要將firebase admin SDK集成到服務器中,並使用admin SDK驗證令牌以從數據庫中獲取數據。

如果我做錯了,請糾正我。

另外,我擔心如何管理刷新令牌以保持我的應用程序登錄。

請幫助我以正確的方式集成它,並且我正在使用nodejs / expressjs創建API。

我們可以將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令牌,刷新令牌或任何其他內容。 您需要做的就是驗證令牌,僅此而已。

請參閱我以前的答案以獲取有關服務器端驗證的更多詳細信息: 使用NodeJS進行Firebase身份驗證

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM