Уважаемое сообщество stackoverflow,
у меня следующая проблема. Я пытаюсь использовать FirebaseAuthentication вместе с Angular7, и я пытаюсь защитить маршруты с помощью охранников, поэтому только зарегистрированные пользователи могут, например, посетить URL-адрес / profile.
Мой логин (login.component.ts) выглядит так. Сначала я импортирую AngularFireAuth и использую его для входа в систему с помощью Google, Facebook или электронной почты. В методе ngOnInit я подписываюсь на authState, поэтому я могу перенаправить на пользователя. Все работает нормально.
На следующем этапе я хотел написать AuthGuard для URL-адреса / profile, чтобы только зарегистрированные пользователи могли посещать свой профиль. Незарегистрированные пользователи должны быть сначала перенаправлены на страницу / login.
Мой AuthGuard (auth.guard.ts) выглядит так и использует класс AuthService (auth.service.ts em>) внутри. Эта AuthService внедряется и предлагает метод isAuthenticated. Если пользователь аутентифицирован, ему должен быть представлен его профиль, в противном случае AuthGuard должен вернуть false и перенаправить его на вход.
AuthService выглядит так, и его метод isAuthenticated должен возвращать true, если пользователь вошел в систему, и false в противном случае.
Если я не добавлю этот фиктивный return true в конце функции, он всегда будет перенаправлять меня обратно в / login, даже когда я вхожу в систему. Он также сообщает мне что функция не имеет возвращаемого значения
Итак, я знаю, что этой подписки недостаточно для метода isAuthenticated, но мне любопытно, как будет выглядеть лучшее решение для определения того, вошел ли пользователь в систему.
Если у кого-то из вас есть наилучшее решение, было бы очень хорошо, если бы он мог показать мне. Правильных руководств не так много.
А пока я постараюсь продолжить поиск решения в Google. Надеюсь, кто-нибудь из вас поможет мне с этой проблемой. Спасибо :)
С уважением, Ян