新しいMeteor-Angular2アプリケーションを開始していますが、ルータにログインしているユーザーを確認する際に問題があります。角度2が始まる前にMeteor.user()をロードしてください
@Injectable()
export class AdminAuthGuard implements CanActivate {
constructor(private router: Router) {}
canActivate() {
if (!Meteor.userId() || Meteor.user() != 'admin') {
this.router.navigate(['/login']);
return false;
}
return true;
}
}
問題は、ページが最初にロードされた(または更新)されたときに、Meteor.user()
機能がundefined
を返し、私ができることです。
これはimplements CanActivate
を使用して、AdminAuthGuard
と私の現在のauth-guard.service.ts
ファイルですcanActivate()
機能の前にユーザーをロードする方法はありません。私もTracker.autorun()
で試しましたが、canActivate()
は非同期ではありません。また、Meteor.users.find({})
は機能しないので、オブジェクトを手動で照会することはできません。
どうすればよいですか?私はどこでも解決策を見つけることができません!