Angular2 - Estendendo roteador e Observable

No angular2 rc2 com o módulo roteador v 3.0.0.6alpha, estendo o RouterOulet para verificar se o usuário está logado antes de acessar o administrador. Então este é o código:

@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 () deve retornar um booleano. Minha pergunta é: como adaptar meu código para fazer uma chamada http para verificar se o usuário está logado? Como se o método isLoggedIn retornar um objeto observável e eu o assinar, não será possível retornar o resultado na função pai.

questionAnswers(1)

yourAnswerToTheQuestion