2015-08-19 9 views
5

Ho scritto una semplice funzione in un'applicazione angularJS per la firma i nuovi utenti:Parse per javascript - "Errore 209 non valida sessione di token" al momento della firma di un nuovo utente

$scope.registerUser = function(username, password) { 
    var user = new Parse.User(); 
    user.set("username", username); 
    user.set("email", username); 
    user.set("password", password); 

    user.signUp(null, { 
     success: function(result) { 

     console.log(result); 
     $scope.registerUserSuccess = true; 
     $scope.registerUserError = false; 
     $scope.registerUserSuccessMessage = "You have successfully registered!"; 

     $scope.$apply(); 

     $timeout(function(){ 
      $state.go("user"); 
     }, 1000); 

     }, 
     error: function(user, error) { 
     $scope.registerUserError = true; 
     $scope.registerUserSuccess = false; 
     $scope.registerUserErrorMessage = "Error: [" + error.code + "] " + error.message; 
     $scope.$apply(); 
     } 
    }); 

Inizialmente ha funzionato bene, ma quando ho cancellato tutti gli utenti direttamente tramite Parse.com, non posso più registrare nuovi utenti usando questa funzione. Ogni volta che ottengo errore 209 token di sessione non valido. Ecco uno screenshot del mio database Parse:

enter image description here

Googled il messaggio di errore e la soluzione è sempre quello di uscire l'utente corrente. Tuttavia, se non ci sono utenti, questa non è un'azione che posso prendere.

Quindi non vorrei solo risolvere questo problema, ma sapere anche come prevenirlo in futuro, quindi la mia applicazione può essere utilizzata in modo sicuro.

Modifica: ho creato un utente direttamente in Parse.com, ho scritto una funzione per accedere a quell'utente, ma ho ottenuto lo stesso errore. Sono completamente bloccato fino a quando questo problema di sessione non viene risolto.

+0

Quando c'è l'errore, forzare l'app a disconnettersi. Qualcosa del genere: 'if (error.code == 209) logout();' –

risposta

15

eliminare tutti i token di sessione, e qualsiasi altra cosa parse legate davvero, da memoria locale:

enter image description here

se necessario disattivare i token di sessione eredità, e seguire migration tutorial da zero:

enter image description here

+0

Mi ci è voluto un minuto per capire che stavi utilizzando gli strumenti di Chrome Dev e facendo clic sulla scheda Risorse per raggiungere le informazioni di archiviazione locale. Sai come fare la stessa cosa in Firefox? Ho fatto una rapida ricerca e apparentemente firebug non ha una scheda risorse equivalente. – ericgrosse

+0

Come qualcuno che è nuovo a web dev, sono stato frustrato in questione per 6 ore. Grazie mille. –

+0

E 'stato utile, sono caduto nella stessa fossa. ;) – Amit

Problemi correlati