【问题标题】:Bad Request in Node Js using passport Js使用护照 Js 的节点 Js 中的错误请求
【发布时间】:2021-07-25 07:59:34
【问题描述】:

我正在尝试使用 passport-local-mongoose 构建注册和登录页面。 当我点击提交注册按钮时,我收到一个错误,上面写着错误的请求。 我在注册时收到“错误请求”,但详细信息存储在 MongoDB 中。不知道我在哪里犯了错误。 请帮帮我。

这是我的注册 POST API。

let express = require('express');
let mongoose = require('mongoose');
const passport = require('passport');
const LocalStrategy = require('passport-local');
const passportLocalMongoose = require('passport-local-mongoose');
var expressValidator = require('express-validator');
const bodyParser = require('body-parser')
const { check, validationResult } = require('express-validator');


const Admin = require('../models/admin-model');

let router = express.Router();

const app = express();

//Creating a Secret Key to Hash Password
router.use(require('cookie-session')({
    secret: 'jdkjhLGUL#^&%^%(*)&^%#!gkjh',    // Encode/Decore Session
    resave: false,
    saveUninitialized: false
}));

passport.use(new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password'
}, Admin.authenticate()));
//Encrypting and Decrypting the Password for Security
passport.serializeUser(Admin.serializeUser());        //session Encoding
passport.deserializeUser(Admin.deserializeUser());
// passport.use(new LocalStrategy(Admin.authenticate()));


//Setting the View Engine to take EJS Pages
app.set('view engine', "ejs");
app.set('views', "./views")


app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static(__dirname + '/public'));

mongoose.connect("mongodb://localhost:27017/node-auth-db", { useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => console.log('Connected to node-auth-db successfully....!'))
    .catch(err => console.log(err))



router.get('/', (req, res) => {
    res.render('home');
});

router.get('/login', (req, res) => {
    res.render('signin');
});

router.post('/login', passport.authenticate("local", {
    successRedirect: '/admin/addnews',
    failureRedirect: '/login'
}));

//Registration
router.get('/register', (req, res) => {
    res.render('signup');
});



router.post('/register', (req, res) => {

    Admin.findOne({ username: req.body.email }, (err, result) => {
        if (err) throw err;

        if (!result) {

            Admin.register(new Admin({ name: req.body.name, username: req.body.email }),
                req.body.password, function (err, admin) {
                    if (err) throw err;
                    passport.authenticate("local")(req, res, function () {
                        res.redirect('/admin/login');
                    })
                }
            )

        }
        else {
            res.redirect('/admin/register');

        }
    });

});



//Add News
router.get('/addnews', isLoggedIn, (req, res) => {
    res.render('addnews');
});

router.post('/addnews', (req, res) => {
    News.create(req.body, (err, data) => {
        if (err) throw err;

        const htmlMsg = encodeURIComponent('Added News DONE !');
        res.redirect('/admin/addnews');
    })
});

//Creating a Authentication Token to secure the logging and Logout.
function isLoggedIn(req, res, next) {
    if (req.isAuthenticated()) {
        return next();
    }
    res.redirect('/admin/login');
}


router.get('/logout', (req, res) => {
    req.logOut();
    res.redirect('/admin');
});

module.exports = router;[]

【问题讨论】:

    标签: node.js mongodb passport.js


    【解决方案1】:

    问题可能是你在管理模块之外传递 req.body.password

       Admin.register(new Admin({ name: req.body.name, username: req.body.email, req.body.password}), function (err, admin) {
                            if (err) throw err;
                            passport.authenticate("local")(req, res, function () {
                                res.redirect('/admin/login');
                            })
                        }
                    )
    

    【讨论】:

      猜你喜欢
      • 2020-02-13
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多