无法使用node在mongodb中保存加密密码

ogsagwnx  于 2023-10-16  发布在  Go
关注(0)|答案(1)|浏览(85)

我正在尝试保存用户的用户名和加密密码在数据库中用于用户注册。但由于某种原因,用户名保存在数据库中,而不是加密的密码。密码字段为空。

//jshint esversion:6
const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const mongoose = require("mongoose");
const encrypt = require("mongoose-encryption");

const app = express();

app.use(express.static("public"));
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({
    extended: true
}));

mongoose.connect("mongodb://localhost:27017/userDB", {useNewUrlParser: true});

const userSchema = new mongoose.Schema ({
    email: String,
    password: String
});

const secret = "Thisisourlittlesecret.";
userSchema.plugin(encrypt, { secret: secret, encryptedFields: ["password"] });

const User = new mongoose.model("User", userSchema);

app.get("/", function(req, res) {
    res.render("home");
});

app.get("/register", function(req, res) {
    res.render("register");
});

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

app.post("/register", function(req, res) {
    const newUser = new User({
        email: req.body.username,
        password: req.body.password
    });

    newUser.save()
        .then(() => {
            res.render("secrets");
        })
        .catch(function(err) {
            console.log(err);
        })
});

app.listen(3000, function() {
    console.log("Server started on port 3000.");
});

页面上没有错误,所以我不知道该如何修复。

wfypjpf4

wfypjpf41#

1.暂时从架构中删除加密,并尝试将密码保存为纯文本
1.记录req.body.password并查看即将到来的数据,可能是body-parser的一些问题

相关问题