Ограничить доступ к изображениям в корзине для аутентифицированных пользователей - PullRequest
0 голосов
/ 27 мая 2019

Ищите инструкции по настройке корзины Google Cloud Storage с изображениями, к которым имеют доступ только аутентифицированные пользователи.

Наше приложение использует Firstore и Cloud Storage.Мы храним изображения в корзинах GCS, которые мы не хотим публично видеть в сети.У нас есть настроенные правила хранения

allow read: if request.auth.uid != null;

Мы также настроили корзину в наших настройках Firebase.Затем мы используем API хранилища для getDownloadURL () для целевого пути.Это работает, и мы можем видеть изображения.Однако, если мы скопируем URL-адрес изображения со страницы и перейдем в другой браузер (который не вошел в систему), этот браузер сможет загрузить изображение.

Вопрос: каков правильный (и наиболее эффективный) способнастроить и получить доступ к корзине GCS так, чтобы только изображения, прошедшие проверку подлинности с использованием Firebase signInWithEmailAndPassword (), могли просматривать изображения.

Вот что мы делаем в настоящее время (Angular и AngularFire)

// Assumes storage is an instance of the AngularFireStorage service
this.storage.getDownloadURL('/thumbs/imagename.jpg')
  .subscribe(path => {
     this.imgSrc = path;
});

AsКак описано выше, полученный путь является общедоступным, а вышеуказанный процесс очень медленным - изображения появляются на экране долго.

Я полагаю, что это неправильный подход?

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Как сказал Дуг, для этого вам потребуется использовать клиентский SDK, который, в зависимости от необходимого вам уровня контроля, может выбрать один из параметров, перечисленных в официальной документации [1], и разрешить доступ только авторизованным пользователям.с Firebase Authentication SDK [2].

[1] https://cloud.google.com/storage/docs/access-control/

[2] https://firebase.google.com/docs/storage/security/user-security

0 голосов
/ 27 мая 2019

Содержимое за URL-адресами для загрузки всегда может просматривать любой, у кого есть этот URL-адрес. Вы не можете изменить это поведение. Если вы не хотите, чтобы какой-либо несанкционированный контент подавался из вашего хранилища, не создавайте URL-адреса для загрузки. Вы должны будете принудительно получить полный доступ к корзине через предоставленные клиентские SDK вместе с Firebase Authentication SDK.

...