Ionic 2 auth-пропустить страницу входа, если в локальном хранилище есть пользователь


У меня есть приложение Ionic 2, которое выполняет аутентификацию на моем бэкэнде Rails 5. Как только пользователь зарегистрирован, я сохраняю его информацию в локальном хранилище. Таким образом, как только пользователь открывает приложения, и он уже вошел в систему раньше, страница входа в систему должна быть пропущена. Я пытаюсь сделать это на моей app.component настройке корневой страницы в зависимости от того, есть ли информация о пользователе в локальном хранилище или нет, но метод storage.get кажется асинхронным, поэтому он выполняется после моей проверки, поэтому он всегда считая его ложным.

Есть идеи, как я мог бы это исправить?

1 3

1 ответ:

Вы можете установить корневую страницу после получения значения из хранилища следующим образом:

@Component({
    templateUrl: 'app.html'
})
export class MyApp {
    @ViewChild(Nav) navCtrl: Nav;

    public rootPage; // Just declare the property, don't set a value here

    constructor(...) {
      this.platform.ready().then(() => {
        Splashscreen.hide();

        // Get the status from the storage
        this.storage.get('login:status').then(loggedIn => {
          this.rootPage = loggedIn ? HomePage : LoginPage;
        });
      });
    }

}

В этом случае, если пользователь уже вошел в систему, корневой страницей будет домашняя страница, а если он не вошел в систему, то страница входа.