2016-07-07 44 views
6

Tak jak mówi tytuł, próbuję użyć auth0-lock z Angular 2 SPA i ASP.NET Core API. Mam problem z uwierzytelnianiem się w celu przetestowania. Używam także aplikacji webpack do spakowania aplikacji i usunęłam wszystkie inne referencje do samej aplikacji.Auth0 z auth0-lock tylko uwierzytelnia się podczas korzystania z debuggera, aby powoli przejść przez kod

Śledziłem ich samouczek tutaj: https://auth0.com/docs/quickstart/spa/angular2

Problem jest, gdy uderzę konstruktora będzie tylko uwierzytelnić jeśli Powoli krok za pomocą kodu z biblioteki debugger.

constructor() { 
     debugger 
    // Add callback for lock `authenticated` event 
     this.lock.on("authenticated", (authResult) => { 
     debugger 
     localStorage.setItem('id_token', authResult.idToken); 
    }); 
    } 

Jeśli usunę debuggery i uruchomię je z normalną szybkością, to nigdy się nie uwierzytelni; auth0-lock pojawi się i będę mógł się zalogować, a następnie przeładuje, ale nie będę zalogowany, ani nie będzie niczego w lokalnej pamięci.

AKTUALIZACJA: Więc myślę, że znalazłem przyczynę tego problemu. Używanie najnowszego routera komponentu Angular 2; Jeśli skomentuję routing, auth działa natychmiast, ale wracając do niego, muszę użyć debuggera, aby zwolnić. W przeciwnym razie nie będzie to auth. Czy istnieje sposób, aby to naprawić?

Mam również inny problem, gdy jestem uwierzytelniony, wysyłając zapytanie do mojego interfejsu API, otrzymuję odpowiedź 401 Unauthorized, mimo że Auth0 mówi, że jestem autoryzowany. Widzę mój token localStorage, jak również korzystania z modułu authHttp znaleźć w angular2-jwt pochodzących z innego jednej Auth0 tutoriali na kątowej 2.

Moje backend (ASP.NET core) ma jako metoda z [Authorise]. Podążyłem za konfiguracją tutaj https://auth0.com/docs/quickstart/backend/aspnet-core-webapi, jak zacząć, z wyjątkiem problemów, które pojawiły się powyżej.

UPDATE: Okazuje się zatem kwestia ta została casued przeze mnie pomijanie części w poradniku na temat zmiany SignatureAlgorithm używać RS256 Zmieniłem go użyć metody RS256 i działa poprawnie na tej stronie rzeczy teraz nadal ma problem gdzie to przyzwyczajenie auth kiedy mam routingu włączona kątowa 2 chociaż Oto gitHub Repo dla projektu: https://github.com/Toxicable/Templates

Odpowiedz

0

Odnośnie problemu wokół uwierzytelniania podczas routingu jest włączony, może to być związane z faktem, że Angular 2 router will not preserve query and fragment parameters upon navigation.

To oznaczałoby, że blokada Auth0 nie wyświetliłaby parametrów związanych z uwierzytelnianiem w adresie URL i jako taka nie uwierzytelniłaby użytkownika. W takim przypadku spróbuj postępować zgodnie z procedurami wskazanymi w tej drugiej odpowiedzi (How to use the HashLocationStrategy with the Auth0 Lock widget for user login), ale ta rozwiązuje ją w przypadku routingu przy użyciu HashLocationStrategy, którego nie wiem, czy to twoja sprawa.