FirebaseUi-Auth обязательный вход - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь ввести обязательный логин для моего сайта.Проблема в том, что я не могу найти способ сделать это.Допустим, я создаю страницу входа, например ...

  var uiConfig = {
    signInSuccessUrl: '<url-to-redirect-to-on-success>',
    signInOptions: [

      firebase.auth.GoogleAuthProvider.PROVIDER_ID,
      firebase.auth.FacebookAuthProvider.PROVIDER_ID,
      firebase.auth.TwitterAuthProvider.PROVIDER_ID,
      firebase.auth.GithubAuthProvider.PROVIDER_ID,
      firebase.auth.EmailAuthProvider.PROVIDER_ID,
      firebase.auth.PhoneAuthProvider.PROVIDER_ID
    ],

    tosUrl: '<your-tos-url>'
  };


  var ui = new firebaseui.auth.AuthUI(firebase.auth());

  ui.start('#firebaseui-auth-container', uiConfig);
</script>

.. на странице с именем www.example.com/SignIn

Если я перехожу на www.example.com / Index

Я мог бы полностью обойти весь вход.

Я подумал, что что-то вроде этого

 if ( FirebaseUser.getCurrentUser () != null ) {

перенаправление на страницу входа}

Как?

Спасибо

1 Ответ

0 голосов
/ 28 мая 2018

Используйте onAuthStateChanged прослушиватель на странице www.example.com/Index:

firebase.auth().onAuthStateChanged(function(user) {
  if (!user) {
    window.location.assign('www.example.com/SignIn');
  }
  ...
});

Однако это неправильный способ обеспечить контроль доступа.Вы должны обеспечить вход в систему с помощью любого из механизмов:

  1. Правила безопасности Firebase (где вы можете иметь только авторизованных пользователей для доступа к определенным ресурсам).
  2. ПередавID-токен для вашего бэкенда и проверка его с использованием Firebase Admin SDK перед возвратом ограниченного ресурса.

Также вы можете использовать для этого куки-файлы сеанса, в зависимости от архитектуры вашего сайта,Firebase теперь также предоставляет возможность чеканить долгосрочные куки сессии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...