2016-07-07 97 views
6

Così come dice il titolo, sto cercando di usare auth0-lock con Angular 2 SPA e un'API di base ASP.NET. Sto riscontrando problemi nell'autenticare me stesso per i test. Sto anche usando webpack per imballare l'app e ho cancellato tutti gli altri riferimenti fino alla semplice app di autenticazione.Auth0 con auth0-lock si autentica solo quando si usa il debugger, per scorrere lentamente il codice

ho seguito il loro tutorial qui: https://auth0.com/docs/quickstart/spa/angular2

Il problema è quando ho colpito il costruttore si autenticherà solo se faccio un passo lentamente attraverso il codice della libreria con debugger.

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

Se rimuovo i debugger e lo faccio girare alla velocità normale non si autenticherà mai; lo auth0-lock verrà visualizzato e posso accedere, quindi verrà ricaricato, ma non verrà effettuato l'accesso né ci sarà nulla nella memoria locale.

AGGIORNAMENTO: Quindi penso di aver trovato la causa di questo problema. Utilizzando il router componente più recente di Angular 2; Se commento il routing, l'auth funziona all'istante, ma rimettendola devo usare il debugger per rallentarlo. Altrimenti, non sarà auth. C'è un modo per risolvere questo problema?

Ho anche un altro problema quando sono autenticato, interrogando la mia API ottengo una risposta 401 Unauthorized anche se Auth0 sta dicendo che sono autorizzato. Posso vedere il mio gettone in localStorage così come l'uso del modulo di authHttp trovano in angular2-jwt proveniente da un altro dei Auth0 tutorial su angolare 2.

mio backend (Core asp.net) ha come un metodo con [Authorise]. Ho seguito il setup da qui https://auth0.com/docs/quickstart/backend/aspnet-core-webapi su come andare avanti, tranne che ho problemi sopra.

UPDATE: Così si scopre questo problema è stata casued da me saltando la parte nel tutorial su come modificare il SignatureAlgorithm di utilizzare RS256 ho cambiato in modo da utilizzare il metodo RS256 e sta lavorando bene su quel lato le cose ora continua ad avere il problema per cui è solito auth quando ho routing abilitato su angolare 2 se Ecco il Github Repo per il progetto: https://github.com/Toxicable/Templates

risposta

0

per quanto riguarda il problema intorno autenticazione quando routing è abilitata, questo potrebbe essere correlato al fatto che l'Angular 2 router will not preserve query and fragment parameters upon navigation.

Ciò significherebbe che Auth0 Lock non vedrebbe i parametri relativi all'autenticazione nell'URL e pertanto non autentica l'utente. In questo caso, prova a seguire le procedure indicate in questa altra risposta (How to use the HashLocationStrategy with the Auth0 Lock widget for user login), anche se quelle lo risolvono per il caso del routing utilizzando lo HashLocationStrategy che non so se sia il tuo caso.