2014-06-24 6 views
7

Używam interfejsu użytkownika w kanciastej witrynie, którą robię, ale nie mogę go uzyskać, aby umożliwić trasy do mojego serwera. Mam uwierzytelnianie facebook Oauth na moim serwerze, gdzie przechodzę do /auth/facebook, a serwer przekieruje do fb, przechwyci wywołanie zwrotne i przekieruje klienta z powrotem na stronę główną.Angularjs-ui-router blokujący dostęp do tras niepublicznych

Działa dobrze podczas nawigacji do adresu URL /auth/facebook w przeglądarce działa dobrze, ale ui-router obserwuje lokalizację i przechwytuje wszystkie moje zmiany lokalizacji.

Jakieś pomysły, w jaki sposób mogę utworzyć żądanie url, pomijając instrukcję $urlRouterProvider.otherwise(...), aby umożliwić przejście do mojego serwera api? Próbowałem dodać przekierowania trasy z dostawcą routera, ale nie wywoła ono zdalnego połączenia.

+0

Jaki jest pełny adres URL w obu przypadkach. – Jorg

+0

to lokalny adres URL, więc teraz jestem na serwerze programistycznym, więc jego stany "ui-router" http: // localhost: 9000/auth/facebook "mają postać" http: // localhost: 9000/about ". Poza tym działa dobrze, jeśli po prostu wyłączę tryb HTML5. – mrosales

+0

Tak, tryb HTML5 byłby moim następnym pytaniem. Angular usuwa haszowanie, zamieniając 'index.html #/about/facebook' na'/about/facebook'. Jeśli chcesz go zachować, możesz coś zrobić z dostępem po stronie serwera, np. Htaccess. W przeciwnym razie, może angulars onroutechange events? – Jorg

Odpowiedz

6

Dzięki chłopaki na angular-dart: Jako obejście można utworzyć obsługi ng-click, które wykonuje window.location.assign('/auth/facebook') ominąć router

+0

używanie 'ng-click' nie działało dla mnie, więc właśnie wykonałem' ng-click' wywołanie funkcji w moim zasięgu, która wywołała '$ window.location.assign ('/ auth /' + provider);' – mrosales

Powiązane problemy