簡體   English   中英

從服務器登錄用戶的Firebase Admin SDK

[英]Firebase Admin SDK to Log user in from Server

我一直在Node JS代碼中使用Firebase Admin SDK從服務器端對用戶進行身份驗證。

Admin SDK提供了一種方法admin.auth().createUser()來創建新用戶。

admin.auth().createUser({
        email,
        password,
        displayName: name
    })
    .then(function(user) {
        console.log("Successfully created new user:", user.uid)
        return res.send(user)
    })
    .catch(function(err) {
        console.log("Error creating new user:", err)
        return res.send(err)
    })

但是現在,如何像在Firebase Client SDK中使用auth.signInWithEmailAndPassword(email, pass)方法那樣使用戶登錄。

admin.auth().getUserByEmail(email) admin SDK上有一種方法可以通過Email admin.auth().getUserByEmail(email)來獲取用戶信息。 此方法返回所有用戶信息,包括密碼,但該密碼被散列。 因此,現在有任何變通辦法可以從Server獲得適當的身份驗證用戶。

我的評論有點晚了,但是一個選擇是直接使用Firebase REST API,但集成到您自己的服務器端API中進行身份驗證。 然后結合使用它和Admin SDK將其全部打包。 REST API文檔可在https://firebase.google.com/docs/reference/rest/auth/#section-sign-in-email-password中找到。 您可以通過自己的API減輕客戶端的負擔,並包裝所有Firebase身份驗證內容,自定義聲明,登錄,注銷等。 您只需要使用兩種方法即可。 這將使您擺脫應用程序和API中的任何依賴關系,就像將它們全都放在一個服務提供商中一樣。 值得深思。

無法使用Admin SDK登錄用戶。 Admin SDK以管理特權運行,無需登錄。

您將要使用Firebase客戶端SDK之一(例如,適用於Android,iOS或Web用戶)將用戶直接從客戶端代碼登錄到Firebase。

如果希望服務器端代碼知道登錄的用戶,則可以將令牌從客戶端發送到服務器,然后在服務器上進行解碼和驗證。 請參閱有關驗證ID令牌文檔以及使用Cloud Functions進行服務器端身份驗證示例

暫無
暫無

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

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