2015-11-21 24 views
6

ich habe heruntergeladen meanjs [email protected] habe ich zwei server für front-end verwendet hvae verwendet eckig mit ionic es läuft in localhost: 3000, für backend habe ich meanjs.in verwendet, dass meansjs ich habe signup erstellt, signin Ich benutze meansjs als Backend und Frontend, aber es funktioniert gut. Aber wenn ich mich mit einem anderen Server verbinde (localhost: 3000), registriere mich und arbeite gut, aber wenn ich Artikel erstelle, bekomme ich 401 unautorisierte bcoz that req.isAuthenticated() function.when jemals ich article modul req.isAuthenticated() erstellen fail.req.isAuthenticated() ich dono was soll ich für diese Funktion übergeben habe ich meine Code enthalten jemand helfen mir ausMean.js req.isAuthenticated zeigt Fehler?

jetzt Ich übergebe Daten wie diese

$http.post('http://192.168.1.14:3000/articles', credentials).success(function(response,data,errorResponse) { 
      // If successful we assign the response to the global user model 
      //$scope.authentication.user =response; 
      console.log(response); 

      console.log(data); 
      // And redirect to the index page 
      $location.path('/tab/account'); 
     }, function(response,data,errorResponse) { 
      $scope.error = errorResponse.data.message; 
      console.log($scope.error); 
      console.log(data); 
     }); 

Routen:

app.route('/articles') 
     .get(users.requiresLogin,articles.list) 
     .post(users.requiresLogin,articles.create); 

Login Checkup

/** 
* Require login routing middleware 
*/ 
exports.requiresLogin = function(req, res, next) { 
    //console.log(req.isAuthenticated()); 
    console.log(req); 
    if (!req.isAuthenticated()) { 
     return res.status(401).send({ 
      message: 'User is not logged in' 
     }); 
    } 

    next(); 
}; 

/** 
* User authorizations routing middleware 
*/ 
exports.hasAuthorization = function(roles) { 
    var _this = this; 
console.log('sss'); 
    return function(req, res, next) { 
     _this.requiresLogin(req, res, function() { 
      if (_.intersection(req.user.roles, roles).length) { 
       return next(); 
      } else { 
       return res.status(403).send({ 
        message: 'User is not authorized' 
       }); 
      } 
     }); 
    }; 
}; 
+0

Sie versuchen, Artikel nach der Anmeldung zu erstellen? req.isAuthenticated() gibt false für dich zurück richtig? Benutzt du die mean.js signin Funktion um dich anzumelden? –

+0

Ich habe create after signin only.an Ich habe Anmeldeinformationen nach signin.yeah übergeben Ich verwende Meanjs Funktionalität. Ich bin neu in dieser Technologie –

+0

Wenn Sie die mean.js-Funktionalität verwenden, dann verwenden sie Pass-Local zur Authentifizierung. Keine Ahnung, warum Sie diesen Fehler bekommen? Sie löschen oder löschen Sie Ihre Datenbank und wenn Sie die HTML-Seite nicht geändert haben, um Artikel zu erstellen, entfernen Sie die Anmeldeinformationen, die Sie im Client controller.js deklariert haben. Ich werde Ihren Code aktualisieren –

Antwort

0

Ich glaube, ich hatte das gleiche Problem. Stellen Sie sicher, dass Sie den Richtlinienordner auf der Serverseite überprüfen.

roles: ['user'], 
allows: [{ 
    resources: '/articles', 
    permissions: ['get', 'post'] 
}, { 
    resources: '/articles/:articlesId', 
    permissions: ['get'] 
}, { 
    resources: '/articles', 
    permissions: ['post'] 
}] 

Fügen Sie den Ressourcenpfad /articles und Berechtigungen hinzu.