Я использую проверку подлинности телефона firebase в моем приложении ioni c 4. Я успешно реализовал аутентификацию jwt. Если токен доступен, я перенаправляю пользователей на главную страницу, а затем перенаправляю на страницу входа.
Но на странице входа возникает проблема. Если пользователь новый (приходит впервые), я хочу перенаправить на страницу сведений, чтобы получить другие данные, такие как электронная почта, имя, еще (старый пользователь), перенаправить на главную страницу.
Проблема у меня нет разных кнопок для входа в систему и регистрации в моем приложении. Для входа и регистрации используется один и тот же логин
Как лучше всего проверить, является ли пользователь новым или старым? Последнее решение заключается в проверке пользователя в базе данных и соответствующем перенаправлении.
Вот мой код
authentication.service.ts
authenticationState = new BehaviorSubject(false);
constructor(private storage: StorageService, private plt: Platform, private router: Router) {
this.plt.ready().then(() => {
this.checkToken();
});
}
checkToken() {
this.storage.get(TOKEN_KEY).then(res => {
if (res) {
this.authenticationState.next(true);
}
})
}
login() {
return this.storage.set(TOKEN_KEY, 'Bearer 1234567').then(() => {
this.authenticationState.next(true);
});
}
logout() {
return this.storage.clear().then(() => {
this.authenticationState.next(false);
this.router.navigate(['home'])
});
}
isAuthenticated() {
return this.authenticationState.value;
}
app.component.ts
constructor(private authenticationService: AuthenticationService){
this.authenticationService.authenticationState.subscribe(state => {
if (state) {
this.router.navigate(['menu/items']);
} else {
this.router.navigate(['home']);
}
});
}
home.page.ts
if(old user) {
// redirect to main page
}
else {
redirect to details page
}