我是一個相當新的 JavaScript 開發人員,來自嵌入式系統領域,即演算法和編程的基本概念對我來說不是問題,但 Web 開發(前端/后端)的一些概念對我來說仍然是新的,而且很多疑問經常出現。
直接進入我的問題,我目前正在開發一個基本的 HTML JS 應用程式,用戶必須登錄才能訪問“私人”區域;一旦登錄,就可以執行許多服務請求并查看其他用戶的請求,或多或少是一個“行內網”系統。
我使用Firebase Firestore作為資料庫,并采用兩種方法與資料庫進行通信:
-對于用戶身份驗證管理(登錄和注冊程序),我利用Firebase 提供的“前端” JS 模塊,使用登錄/密碼方法并激活電子郵件鏈接確認功能。發送身份驗證請求后,firebase 應用程式會回傳一個令牌,并根據此令牌生成會話 cookie,授予對私有區域的訪問權限。這樣,我不需要在后端部分管理大多數身份驗證/帳戶驗證步驟。
-對于任何其他資料庫操作(firestore 讀取和寫入),我將“firebase-admin”SDK 與我的后端實作結合使用,以在實際執行之前使用會話 cookie 驗證所有請求的方式. 后端可以訪問服務帳戶 JSON“密鑰”,這使其具有對整個資料庫的完全讀寫訪問權限。
最后,問題是:
- 使用前端和后端兩種方法來管理 Firebase 應用程式是可以接受的還是傳統的?
-一旦所有firestore資料都在后端管理,所有讀/寫/權限規則都在那里管理,設定安全規則來阻止一切的正確方法是否正確,如下所示?(考慮到firebase-admin從后端繞過一切,不受影響)
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
最好的問候,如果我的疑問很清楚,請告訴我:)
uj5u.com熱心網友回復:
在使用 Firestore(或其他 Firebase 模塊)時結合前端和后端代碼是很正常的。通過 Admin SDK 執行所有資料訪問(雖然不是必需的)也是一種完全可以接受的方法。在這種情況下,將規則設定為不允許從客戶端 SDK(或通過 REST API 使用 ID 令牌)進行任何直接訪問確實是一個合乎邏輯的步驟。
需要注意的是,您的代碼現在負責確保所有資料都經過授權,而在您使用客戶端 Firebase SDK 的情況下,執行訪問控制的是 安全規則。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/336925.html
標籤:javascript 节点.js 火力基地 谷歌云firestore firebase-身份验证
