0
大多數應用程序都有一個「代表客戶X」按鈕。使用Firebase可以實現嗎?我可以使用FirebaseSimpleLogin進行身份驗證嗎?
我注意到我可以用create an admin token使用自定義登錄,但由於數據不可避免地被用戶的ID索引,因此如果我仍然認爲自己是用戶的數據,那麼獲取用戶的數據就很困難。
大多數應用程序都有一個「代表客戶X」按鈕。使用Firebase可以實現嗎?我可以使用FirebaseSimpleLogin進行身份驗證嗎?
我注意到我可以用create an admin token使用自定義登錄,但由於數據不可避免地被用戶的ID索引,因此如果我仍然認爲自己是用戶的數據,那麼獲取用戶的數據就很困難。
您可以通過custom login創建令牌來模擬以用戶身份登錄。
例如,如果您的安全規則,利用auth.uid如下:
".write": "auth.uid == $user_id"
然後你就可以用適當的UID生成的令牌(加上簡單的登錄任何其他細節你正在使用):
function superUserToken(USER_ID) {
var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator(YOUR_FIREBASE_SECRET);
return tokenGenerator.createToken({uid: USER_ID});
}
然後,當你想su
到另一個用戶,只需調用驗證()直接用新的令牌:
var fbRef = new Firebase(URL);
fbRef.auth(superUserToken('Kato!'), function(error, user) { /* ... */ });
此技術也可用於測試安全規則,而無需在開發環境中創建多個帳戶。