#javascript #routes #bad-request
#язык JavaScript #маршруты #плохой запрос
Вопрос:
Похоже, возникли проблемы с регистрацией и входом в систему. Я подозреваю, что это как-то связано с паспортом, потому что, когда я удаляюсь passport.authenticate
по обоим маршрутам, это приводит меня к "homeafterauthentication")
ошибке, которую я получаю, — это плохой запрос
Вот коды js
require("dotenv").config(); const express = require("express"); const bodyParser = require("body-parser"); const ejs = require("ejs"); const request = require("request"); const https = require("https"); const mongoose = require("mongoose"); const ObjectID = require("mongodb"); const session = require('express-session'); const passport = require("passport"); const passportLocalMongoose = require("passport-local-mongoose"); const GoogleStrategy = require('passport-google-oauth20').Strategy; const findOrCreate = require('mongoose-findorcreate'); const app = express(); app.use(express.static("public")); app.set('view engine', 'ejs'); app.use(bodyParser.urlencoded({ extended: true })); app.use(session({ secret: "Our little secret.", resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); mongoose.connect("mongodb://localhost:27017/stephansnotes", { useNewUrlParser: true, useUnifiedTopology: true }); // mongoose.set("useCreateIndex", true); const userSchema = new mongoose.Schema ({ email: String, password: String, fName: String, lName: String, googleId: String, secret: String });
Вот паспортные коды
userSchema.plugin(passportLocalMongoose); userSchema.plugin(findOrCreate); const User = new mongoose.model("User", userSchema); passport.use(User.createStrategy( {username:"email", password:"password"}, function(user, password, done){ return done(null, false, {message: "Unable to login"}) } )); passport.serializeUser(function(user, done) { done(null, user.id); }); passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); });
Вот маршрут регистрации
app.post("/signup", function(req, res){ User.register({username: req.body.email}, req.body.password, req.body.fName, req.body.lName, function(err, user) { if (err){ console.log(err); res.redirect("/signup"); } else { passport.authenticate("local")(req, res, function(){ res.render("homeafterauthentication"); }); } }); });
Here is the sign in route
app.post("/signin", function(req, res){ const user = new User({ email : req.body.username, password : req.body.password }); req.login(user,function(err){ if(err){ console.log(err); } else { passport.authenticate("local")(req,res,function(){ res.render("homeafterauthentication"); }); } }); });