Angular2 - расширяющийся маршрутизатор и наблюдаемый

В angular2 rc2 с модулем маршрутизатора v 3.0.0.6alpha я расширяю RouterOulet, чтобы проверить, вошел ли пользователь в систему перед доступом к администратору. Итак, это код:

@Directive({
    selector: 'router-outlet'
})

export class LoggedInRouterOutlet extends RouterOutlet 
{
    publicRoutes: Array<string>;
    private parentOutletMap: RouterOutletMap;
    private userService: UserService;
    private parentRouter: Router;

    constructor(
        parentOutletMap: RouterOutletMap,
        _location: ViewContainerRef,
        @Attribute('name') name: string,
        userService: UserService,
        parentRouter: Router
    ) { 
        super(parentOutletMap, _location, name);

        this.parentRouter = parentRouter;
        this.parentOutletMap = parentOutletMap;
        this.userService = userService;
        this.publicRoutes = [
            'public', 
            'login'
        ];
    }

    activate(factory: ComponentFactory<any>, activatedRoute: ActivatedRoute, providers: ResolvedReflectiveProvider[], outletMap: RouterOutletMap) 
    {
        if (this._canActivate(factory.selector)) { 
            return super.activate(factory, activatedRoute, providers, outletMap); 
        }

        this.parentRouter.navigate(['/login']);
    }

    _canActivate(url) {
        return this.publicRoutes.indexOf(url) !== -1 || this.userService.isLoggedIn()
    }
}

userService.isLoggedIn () должен возвращать логическое значение. У меня вопрос: как мне адаптировать мой код для выполнения http-вызова, чтобы проверить, вошел ли пользователь в систему? Потому что, если метод isLoggedIn возвращает наблюдаемый объект, и я подписываюсь на него, я не могу вернуть результат в родительской функции.