Пользовательские утверждения Firebase в виде списка + правила безопасности - PullRequest
2 голосов
/ 21 июня 2020

Я думаю о следующей структуре правил безопасности + настраиваемые утверждения:

auth.token.buckets = ['bucket1', 'bucket2', 'bucket3']

И правило безопасности вроде:

allow read if storage/{$bucket} is in auth.token.buckets

Возможно ли это? И если да, то какой будет правильный синтаксис?

1 Ответ

1 голос
/ 21 июня 2020

Это действительно должно быть возможно.

  • Правильный оператор - in, поскольку ваш токен содержит список ключей.
  • Правильный способ для ссылки на ведро используется bucket, без $ или {}.

Таким образом, общие правила могут быть примерно такими:

service firebase.storage {
  match /b/{bucket}/o {
    match /{path=**} {
      allow read: if bucket in auth.token.buckets;
    }
  }
}

Обратите внимание, что вы вам нужно будет сохранить в токене полное имя вашей корзины, например, your-project-name.appspot.com

...