2 votes

Autorisation d'une application MEAN Stack - l'enregistrement semble se faire en essayant de se connecter

Lorsque j'essaie de m'enregistrer en tant que nouvel utilisateur, je reçois un message d'erreur indiquant que le nom d'utilisateur ou le mot de passe n'est pas valide.

La forme :

form(class='form-auth' ng-submit='register()')
  p(class='text-warning'){{error_message}}
  label(for='email') Email
  input(type="email", ng-model='users.email', name="email", placeholder='Email')
  label(for='password') Password
  input(type="password", ng-model='users.password', name="password", placeholder='Password')
  input(type="submit" class='submitBtn' value='Go')

Le contrôleur 'register' (dans le fichier 'myApp.js' dans le répertoire Javascript public)

app.controller('authController', function($scope, $rootScope, $http, $location){
  $scope.user = {email: '', password: ''};
  $scope.error_message = '';
  $scope.register = function(){
    $http.post('/auth/signup', $scope.user).success(function(data){
      if(data.state == 'success'){
        $rootScope.authenticated = true;
        $rootScope.current_user = data.user.username;
        $location.path('/');
    }
    else{
        $scope.error_message = data.message;
    }
  });
 };
});

J'ai l'authentification et le passeport dans le fichier principal app.js. J'ai une fonction de connexion au-dessus de la fonction d'enregistrement, mais elle semble être fermée correctement. Y a-t-il un problème ici ?

1voto

The Falvert Points 58

Le ng-model des entrées devrait être "user.email, user.password" au lieu de "users.email, users.password" comme dans votre contrôleur. $scope.user .

Si $scope.users n'existe pas, des valeurs vides sont envoyées au backend.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X