Могу ли я безопасно интегрироваться с firebase без аутентификации пользователя без кода на стороне сервера?

Мой сайт — это всего лишь одна страница с формой. У меня нет функции авторизации пользователя. Могу ли я по-прежнему использовать интеграцию Firebase на стороне клиента без безопасного прохождения кода на стороне сервера? Если да, как я могу защитить данные для моего соединения с firebase?


person hopper    schedule 10.10.2013    source источник


Ответы (2)


Вы можете использовать новую функцию анонимной аутентификации, предоставляемую Firebase Simple Login: https://www.firebase.com/docs/security/simple-login-anonymous.html

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

person Anant    schedule 10.10.2013
comment
Эй, разве это не означает, что любой может легко читать/записывать/перечислять всю вашу базу данных из Интернета? - person rubmz; 22.06.2017
comment
@rubmz Нет, они получают доступ только к своим данным. - person Leon; 24.10.2017

Да.

Просто добавьте эти теги на свою страницу:

<script type="text/javascript" src="https://cdn.firebase.com/v0/firebase.js"></script>
<script type="text/javascript" src="https://cdn.firebase.com/v0/firebase-simple-login.js"></script>

Затем напишите этот код:

var chatRef = new Firebase('https://YOUR-APP.firebaseIO.com');
var auth = new FirebaseSimpleLogin(chatRef, function(error, user) {
  if (error) {
    // an error occurred while attempting login
    console.log(error);
  } else if (user) {
    // user authenticated with Firebase
    console.log('User ID: ' + user.id + ', Provider: ' + user.provider);
  } else {
    // user is logged out
  }
});

И когда ваш пользователь нажимает кнопку входа в систему, вызовите

// attempt to log the user in with your preferred authentication provider
auth.login('github (or twitter, or what you want)');

Как описано здесь и продемонстрировано здесь.

person fiatjaf    schedule 26.11.2013