Firebaseでユーザーログインフローを設定し、ユーザーがログインしていないときにページにアクセスできないように保護しようとしています。Firebaseのドキュメントから、でユーザーのログイン状態を追跡できることはわかっていますonAuthStateChanged
が、そうではありません。ユーザーがルートガードからログインしているかどうかを識別できるようにするために、その関数に何を含めるかを確認してください。でログイン状態を追跡するにはどうすればよいですonAuthStateChanged
か?
編集:
具体的にonAuthStateChanged
は、が呼び出されたときにルーターに指示する方法がわかりません。注入されたルーターに電話をかけてみました
@Component({
selector: 'app-root',
templateUrl: 'app.component.html'
})
export class AppComponent {
constructor(
private afAuth: AngularFireAuth,
private router: Router,
) {
this.afAuth.auth.onAuthStateChanged(function(user) {
if (user) {
this.router.navigate('home');
} else {
this.router.navigate('login');
}
});
}
}
しかし、onAuthStateChanged
が呼び出されると、this.router
未定義であるというエラーが表示されます。
問題は無名関数のスコープの問題であることに気づきました。=>
構文を使用すると、問題が修正されます。
@Component({
selector: 'app-root',
templateUrl: 'app.component.html'
})
export class AppComponent {
constructor(
private afAuth: AngularFireAuth,
private router: Router,
) {
this.afAuth.auth.onAuthStateChanged((user) => {
if (user) {
this.router.navigate('home');
} else {
this.router.navigate('login');
}
});
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加