ここにapp.module.tsファイルでルーティングするための角度コードがあります。角度2ガードを使用します。ページを更新するときにユーザーをログインさせたままにする方法は?
const appRoutes: Routes = [
{path: '', component: LoginformComponent},
{path: 'dashboard', component: DashboardComponent, canActivate: [AuthenticationGuard]},
{path: 'user', children: [
{path: '', component: UserComponent},
{path: ':id', component: UserdetailComponent}
], canActivate: [AuthenticationGuard]
},
{path: '**', component: NotfoundComponent}
];
次のコードはガードファイルを表しています。
export class AuthenticationGuard implements CanActivate {
constructor(private user: UserService, private router: Router) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
if (! this.user.getUserLoggedIn()) {
this.router.navigate(['/']);
}
return this.user.getUserLoggedIn();
}
}
ユーザーとしてログインしたときにGuardが正常に機能します。しかし、それをリフレッシュする場合は、私をログアウトします。ページを更新した後でもシステムにログインしておく方法が必要ですか?
これは、ユーザーservice.tsファイルであり、
@Injectable()
export class UserService {
private isUserLoggedIn: boolean;
private username: string;
constructor() {
this.isUserLoggedIn = false;
}
setUserLoggedIn(username) {
this.isUserLoggedIn = true;
this.username = username;
}
getUserLoggedIn() {
return this.isUserLoggedIn;
}
getUserName() {
return this.username;
}
}
誰かが私を助けることができる..........
あなたは)(this.user.getUserLoggedInのロジックを共有することができますか? –
@VolodymyrBilyachat私はちょうど私の質問を編集しました。 – LSampath