Я создаю веб-сайт в nodejs (expressjs), который будет использовать Firebase Admin Auth API для аутентификации пользователя с помощью id-token-verification
.
Затем этот токен будет сохранен в сеансе сервера, чтобы использоваться для запросов к базе данных в реальном времени, которые будут выполняться с сервера.
Мой вопрос касается ограничения привилегий, в документах говорится, что databaseAuthVariableOverride
следует использовать для имитации пользователя, использующего их uid
Взято из документов по авторизации администратора:
Если вы хотите, чтобы ваш сервер эмулировал действия пользователя, такие как доступ к базе данных реального времени Firebase от имени этого пользователя, вы должны сначала проверить и декодировать токен идентификатора для этого пользователя. Затем используйте опцию databaseAuthVariableOverride, чтобы ограничить привилегии вашего сервера.
поэтому для каждого пользователя:
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://databaseName.firebaseio.com",
databaseAuthVariableOverride: {
uid: userId1
}
}, userId1)
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://databaseName.firebaseio.com",
databaseAuthVariableOverride: {
uid: userId2
}
}, userId2)
Можно ли инициализировать новый firebaseApp для каждого пользователя, вошедшего в систему, или существует стандартный способ ограничения привилегий для нескольких пользователей?