快递:我无法获得Passport来验证登录.注册正在进行,但您可以帮助护照登录验证吗

Express: I cant get Passport to authenticate the Login. Register is working but can you help passport Login Authentication

本文关键字:验证 登录 帮助 正在进行 注册 Passport 快递      更新时间:2024-01-01

我可以允许用户注册电子邮件和密码。登录允许任何用户在完全没有凭据的情况下绕过身份验证。他们只需按下登录按钮就可以登录了。谢谢!

LoginController.js

    myApp.controller('LoginController', ['$scope', 'DataFactory', function($scope, DataFactory){
      $scope.dataFactory = DataFactory;
      $scope.failedLogin = false;
      $scope.loginUser = function() {
        var user = {
          email: $scope.email,
          password: $scope.password
        };
        $scope.failedLogin = false;
        $scope.dataFactory.factoryLoginUser(user);
      };
    }]);

Encryption.js模块

    var bcrypt = require('bcrypt');
    var SALT_WORK_FACTOR = 10;
    var publicAPI = {
      encryptPassword: function(password) {
        var salt = bcrypt.genSaltSync(SALT_WORK_FACTOR);
        return bcrypt.hashSync(password, salt);
      },
      comparePassword: function(candidatePassword, storedPassword) {
        return bcrypt.compareSync(candidatePassword, storedPassword);
      }
    };
    module.exports = publicAPI;

dataFactory.js

myApp.factory('DataFactory', ['$http', '$location', function($http, $location) {
  var apiData = undefined;
  var apiPhotoData = undefined;
  var isUserLoggedIn = false;
  var displayReminderMessage = false;
  // Private


  var privateAddNewUser = function(user) {
    $http.post('/register', user).then(function(response){
      console.log('Successfully added new user');
    });
  };
  var privateLoginUser = function(user) {
    console.log('sending login to server');
    $http.post('/login', user).then(
      function (res) {
        $location.path('/search');
        isUserLoggedIn = true;
      },
      function (err) {
        $location.path('/failure');
      });
  };

      factoryAddNewUser: function(user) {
        return privateAddNewUser(user);
      },
      factoryLoginUser: function(user) {
        return privateLoginUser(user);
      },

  };
    return publicAPI;
}]);

UserStrategy.js

var passport = require('passport'); var localStrategy =
> require('passport-local').Strategy; var encryptLib =
> require('../modules/encryption'); var connectionString =
> require('../modules/connection'); var pg = require('pg');
> 
> passport.serializeUser(function(user, done) {   console.log('hola');  
> done(null, user.id); });
> 
> passport.deserializeUser(function(id, done) {
> 
>   pg.connect(connectionString, function (err, client) {
> 
>     var user = {};
>     console.log('called deserializeUser - pg');
>     var query = client.query("SELECT * FROM users WHERE id = $1", [id]);
> 
>     query.on('row', function (row) {
>       console.log('User row', row);
>       user = row;
>       done(null, user);
>     });
> 
>     // After all data is returned, close connection and return results
>     query.on('end', function () {
>       client.end();
>     });
> 
>     // Handle Errors
>     if (err) {
>       console.log(err);
>     }   }); });
> 
> // Does actual work of logging in passport.use('local', new
> localStrategy({   passReqToCallback: true,   usernameField: 'email'  
> }, function(req, email, password, done){
>     pg.connect(connectionString, function (err, client) {
>       console.log('called local - pg');
>       var user = {};
>       var query = client.query("SELECT * FROM users WHERE email = $1", [email]);
> 
>       //user = query;
>       //
>       //console.log('user is: ', user);
> 
>       query.on('row', function (row) {
>         console.log('User obj', row);
>         user = row;
> 
>         // Hash and compare
>         if (encryptLib.comparePassword(password, user.password)) {
>           // all good!
>           console.log('matched');
>           done(null, user);
>         } else {
>           console.log('nope');
>           done(null, false, {message: 'Incorrect credentials.'});
>         }
> 
>       });
> 
>       // After all data is returned, close connection and return results
>       query.on('end', function () {
>         console.log('ending the stuff');
>         client.end();
>       });
> 
>       // Handle Errors
>       if (err) {
>         //console.log('yup');
>         console.log(err);
>       }
>     });   } ));
> 
> module.exports = passport;

LogInRoute.js

var express = require('express');
var router = express.Router();
var passport = require('../strategies/user.js');
// Handles login form POST from index.html
router.post('/',
    passport.authenticate('local', {
        successRedirect: '/views/templates/search.html',
        failureRedirect: '/views/templates/login.html'
    })
);
module.exports = router;

app.js服务器

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var pg = require('pg');
var passport = require('./strategies/user.js');
var session = require('express-session');
var register = require('./routes/register');
var user = require('./routes/user');
var login = require('./routes/login');
var ZWSID = "X1-ZWz19ssev2coi3_1u0pu";
var Zillow = require('node-zillow');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
// Passport Session Configuration //
app.use(session({
  secret: 'secret',
  key: 'user',
  resave: 'true',
  saveUninitialized: false,
  cookie: {maxage: 60000, secure: false}
}));
// start up passport sessions
app.use(passport.initialize());
app.use(passport.session());
app.use('/register', register);
app.use('/login', login);

app.use(express.static('public'));
app.use(express.static('public/views'));
app.use(express.static('public/templates'));
app.use(express.static('public/fonts'));
app.use(express.static('public/images'));
app.use(express.static('public/scripts'));
app.use(express.static('public/scripts/factories'));
app.use(express.static('public/scripts/controllers'));
app.use(express.static('public/styles'));
app.use(express.static('public/styles/css'));
app.use(express.static('public/styles/scss'));
app.use(express.static('public/vendors'));

app.set('port', process.env.PORT || 5000);
app.listen(app.get('port'), function() {
});
我想明白了
var express = require('express');
    var router = express.Router();
    var passport = require('passport'); // ../strategies/user.js

    router.post('/',
      passport.authenticate('local'),
      function (req, res) {
        res.sendStatus(200);
      });
    module.exports = router;