私は単純なIonic3アプリケーションをいくつかの遅延ページ(IonicPage
を使用)とログインページで使用しています。ユーザーが最初にログインしていない限り、すべてのページへのすべてのアクセスをブロックしたいと思います。これがコードバージョンのコードではなくウェブサイトのバージョンを構築することであることを知っていれば、ユーザーにレイジーのURL読み込まれたページにアクセスし、ログインせずにアクセスできますか?私はナビゲーションに「タップ」しそこからログインページにリダイレクトする何らかの方法がなければならないと推測していますが、ドキュメンテーションのどこにもこれが見つかりません。明らかに、私はこれを行うためにすべての遅延読み込みページに同じコードを追加したくありません。ここで ionicウェブサイトの遅延ページにログインする必要があります
// app.component.ts
import { UserAuthService } from '..';
export class MyApp {
constructor(userAuth: UserAuthService) {
userAuth.init(<whatever dependency needed>);
userAuth.unauthorized().subscribe((auth: boolean) => {
if (auth) {
this.nav.setRoot(HomePage);
}
else {
this.nav.setRoot(LoginPage);
this.nav.popToRoot();
}
});
}
}
// user-auth.service.ts
export class UserAuthService {
private auth: ReplaySubject;
init(): {
// code here to catch whatever page change there is, check if user is authorized and push new value
}
unauthorized(): Observable<boolean> {
return this.auth.asObservable();
}
}
そしてボーナスポイント私は正常で
_Obviously私は追加しませんすべての遅延ロードされたページで同じコードがこれを行う_:したがって、 'NavGuards'を使うのはオプションではありませんか? – sebaferreras
@sebaferreras多分、それは何ですか? – Guillaume
私は自分の答えを元に戻しましたが、それがあなたが探していたものでないかどうかを教えてください。私はもう一度それを削除します... – sebaferreras