私はMEAN STACKを使用してアプリケーションを構築しています。私は自分のログインフォームにパスポートローカル認証を使いたい。しかし、フォームの送信、私はPOST http://localhost/login 404(見つかりません)これ以下の私のコードの外観を持ってください取得していますの時間は私のコントローラです:Passportローカル認証が機能していません
lyfee.controller('loginCtrl', ['$scope', '$http', function($scope, $http) {
$scope.user = {};
$scope.login = function() {
// var data = {User: $scope.user }
//console.log($scope.user);
console.log("login function call");
$http.post('/login', $scope.user);
console.log("login request send");
}
}]);
、これが私のserver.jsです:
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
User.getUserByusername(username, function(err, user) {
if (err) throw err;
if (!user) {
return done(null, false, {
message: 'Unknown USER'
});
}
User.comparePassword(password, user.password, function(err, isMatch) {
if() throw err;
if (isMatch) {
return done(null, user);
} else {
return done(null, false, {
message: 'Invalid password'
});
}
});
});
}));
app.post('/login',
passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true
}),
function(req, res) {
res.redirect('/');
});
ファイルにはgetUserByusernameとcomparePassword関数を記述する必要がありますか?私がしている間違いは何かを修正して、私にいくつかの提案をしてください。お使いのモデルで
のような関数を使用します。 User.js –
@ Md.SharifulIslam、モデルにdbSchema.jsがあります。ここでmongooseのスキーマが定義されていますので、そこにwritecodeできますか? –
平均スタック、SPA - 1ページしかありません。リダイレクトする場所はありません。 HTTPステータス(200,401)を返すだけでフロントエンド側でサポートできます。 –