![](/img/trans.png)
[英]Firebase Admin SDK - Check user's password against variable on server
[英]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.