からtodo-angular-2へ
ありがとうございます角度2のUIルータガード条件を使用してURLを保護することができます。 firebase
ガードコンポーネント
を使用して https://angular.io/docs/ts/latest/guide/router.html#!#can-activate-guard
例おそらく認証サービスで、ここでのAFを参照して交換する方が良いだろうに注意してください。
import { Injectable } from '@angular/core';
import { CanActivate, Router } from '@angular/router';
import { AngularFire } from 'angularfire2';
@Injectable()
export class CanActivateViaAuthGuard implements CanActivate {
user;
constructor(private af: AngularFire, private router: Router) {
this.af.auth.subscribe(user => {
if (user) {
this.user = user;
} else {
this.user = undefined;
}
});
}
canActivate() {
if (this.user) {
return true;
}
this.router.navigate(['/login']);
return false;
}
}
アプリケーションルート
import { CanActivateViaAuthGuard} from './CanActivateViaAuthGuard';
const routes: Routes = [
{path: '/Login', component: LoginComponent},
{path: '/dashboard', component: DashboardComponent, canActivate: [CanActivateViaAuthGuard]}
];
export const routing = RouterModule.forRoot(routes);
最後にログインコード
onSubmit() {
this.af.auth.login({
email: this.email,
password: this.password,
}).then(() => {
this.submitted = true;
this.router.navigate(['/dashboard', this.dashboard]);
});
}
何Angular2バージョン、どのようなルータのバージョン? –
@GünterZöchbauerああ申し訳ありませんが、忘れました。 angular2バージョン2.0.0-rc.1およびangular2/routerバージョン2.0.0-rc.1、firebaseバージョン3.0.5、angularfire2バージョン2.0.0-beta.1 –
このルータも廃止予定です。 '@ angle/router'を使うか、新しいV3 alpha.7ルータに移行してください。チェックしてからリダイレクトする新しいルータでガードを使用することができます。 –