2017-04-12 8 views
3

Rails 5バックエンドで認証を行うIonic 2アプリケーションがあります。ユーザーがログに記録されると、彼の情報はローカルストレージに保存されます。 だから、ユーザーがアプリを開いて、既にログインしている場合は、ログインページをスキップする必要があります。私は私のapp.componentローカルストレージ上のユーザーに関する情報があるかどうかに応じて私のルートページを設定しようとしていますが、storage.getメソッドは非同期であるように見えますので、常にチェックしています。偽です。Ionic 2 auth - ローカルストレージにユーザーがいる場合はログインページをスキップします

どのように私はそれを修正することができますアイデア?この場合

@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; 
     }); 
     }); 
    } 

} 

ユーザーがすでにログインしている場合、ルート・ページがホームページになり、それはだ場合:あなたはこのようにストレージから値を取得した後、ルート・ページを設定することができ

答えて

9

ログインしていない、LoginPage

+1

ええ、私の問題は、サービスで関数を取得することでした...だから、その関数を購読してコードを実行する必要がありました。しかし、私は本当に感謝しています、あなたは多くを助けました! =) –

+1

ユーザーがログインしたときにイベントを作成することもできます。また、app.componentで、そのログインイベントが公開されているかどうかを確認することもできます。 – Yasir

+0

@RonanLopesを助けてくれてうれしいです:) getを同じapp.componentあなたに全体的なアイデアを与えることはできますが、これは間違いなくサービスに含める必要があります – sebaferreras

関連する問題