简体   繁体   English

Node.js在Express和Mongoose上设置Passport的问题

[英]Node.js Problems setting up Passport with Express and Mongoose

I'm new to Node.js. 我是Node.js的新手。 Trying to set up user account creation and log in using Passport. 尝试设置用户帐户创建并使用Passport登录。 I can't ge it work. 我不能让它工作。 I am getting Unauthorized message although I am logging in with an existing user and pass. 尽管我使用现有用户登录并通过,但我收到未授权消息。 My code so far: 到目前为止,我的代码:

var express = require('express');
var http = require('http');
var path = require('path');
var request = require('request');
var app = express();
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var MongoClient = require('mongodb').MongoClient;

app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('ejs').renderFile);

app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.bodyParser());
app.use(app.router);
app.enable('trust proxy');

if ('development' == app.get('env')) {
}

var httpserver = http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    passportLocalMongoose = require('passport-local-mongoose');

/* Database has _id field but i guess i don't need to add anything here?*/

var Accoun = new Schema({
    username: String,
    password: String
});

/* Database collection is called 'users'*/
Accoun.plugin(passportLocalMongoose);
var Account = mongoose.model('users', Accoun);

passport.use(new LocalStrategy(Account.authenticate()));
passport.serializeUser(Account.serializeUser());
passport.deserializeUser(Account.deserializeUser());

mongoose.connect('xxxmyconnectionstring');

app.get('/', function(req, res) {
  res.render('login.html');
});


  app.post('/login', passport.authenticate('local'), function(req, res) {
      res.redirect('/myteam.html');
  });

I need some expert help... 我需要一些专家帮助...

Regards, 问候,

我相信您需要在app.post中设置成功重定向和失败重定向。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM