Привет всем Спасибо заранее. Я застрял на аутентификации с паспортом. все работает отлично, я могу отправить информацию о пользователе в мою БД. но проблема в том, что когда я регистрирую любого пользователя, страница не перенаправляет на мою страницу secreat.e js. это покажет мне Плохая ошибка запроса ... пожалуйста, проверьте ниже код:
require('dotenv').config( );
const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const mongoose = require("mongoose");
const session = require('express-session');
const passport = require("passport");
const passportLocalMongoose = require("passport-local-mongoose");
const LocalStrategy = require('passport-local').Strategy;
// const encrypt = require("mongoose-encryption");
// const md5 = require("md5");
// const bcrypt = require('bcrypt');
// const saltRounds = 10;
const app = express();
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({ extended : true }));
app.use(express.static("public"));
app.use(session({
secret : " Our littile secret",
resave : false,
saveUninitialized : false
}));
app.use(passport.initialize());
app.use(passport.session());
//////////////// Mongo DB Connection /////////////////////////
mongoose.connect("mongodb://localhost:27017/userDB", { useNewUrlParser : true, useUnifiedTopology :true });
mongoose.set('useCreateIndex', true)
const userSchema = new mongoose.Schema({
email : String,
password : String
});
userSchema.plugin(passportLocalMongoose);
// userSchema.plugin(encrypt, { secret: process.env.SECRET , encryptedFields : ["password"] });
const User = mongoose.model("User", userSchema);
passport.use(new LocalStrategy(User.authenticate()));
// use static serialize and deserialize of model for passport session support
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
//////////////////////// Route Script //////////////////////////////////////////
app.get("/", function(req, res){
res.render("home");
});
app.get("/login", function(req, res){
res.render("login");
});
app.get("/registration", function(req, res){
res.render("registration");
});
app.get("/secreat", function(req, res){
if(req.isAuthenticated()){
res.render("secreat");
} else {
res.redirect("/login");
}
});
// Passsport Authentication Script
app.post("/register", function(req, res ){
let newUser = new User({
username : req.body.email
});
User.register(newUser, req.body.password , function(err, user){
if(err){
res.redirect("/register");
}else {
passport.authenticate("local") (req, res , function(){
res.redirect("/secreat");
});
}
// next();
});
// passport.authenticate("local", { successRedirect: '/secreat', failureRedirect: '/login' })
});
app.post("/login", function(req, res){
});
///////////////////////// SERVER SCRIPT ////////////////////////////////
app.listen(3000, function(req, res){
console.log("server is running on port 3000");
})
Я был бы очень благодарен, если кто-нибудь решит эту проблему ...