0
잘 작동하는 기본 사용자 등록 양식을 만들었지 만 암호 확인 필드를 추가해야합니다. 다음과 같이Passport로 비밀번호 확인
나의 양식은 다음과 같습니다 사용자 안타 제출하면
<div class ="container form">
<div class="jumbotron form"><h2><i class="fa fa-user-plus" aria-hidden="true"></i> Signup</h2></div>
<form action = "/register" method="POST">
<div class="form-group">
<i class="fa fa-user" aria-hidden="true"></i>
<label for="username">Username</label>
<input type = "text" class = "form-control" placeholder = "Enter username" name="username">
</div>
<div class="form-group">
<i class="fa fa-key" aria-hidden="true"></i>
<label for="password">Password</label>
<input type = "password" class ="form-control" placeholder = "Enter password" name="password1">
</div>
<div class="form-group">
<i class="fa fa-key" aria-hidden="true"></i>
<label for="password">Confirm password</label>
<input type = "password" class ="form-control" placeholder = "Enter password" name = "password">
</div>
<div class="form-group">
<i class="fa fa-picture-o" aria-hidden="true"></i>
<label for="img">Image</label>
<input type = "text" class ="form-control" placeholder = "Enter image URL" name = "image">
</div>
<button type ="submit" class="btn btn-primary btn-lg">Signup</button>
</form>
</div>
그래서, 나는 분명 그렇지 않은 경우와 일치하고, 오류가 발생되는 2 암호 입력이 필요합니다.
나는 authenitcation을 위해 Passport를 사용하고 있습니다.
// passport configuration
app.use(require("express-session")({
secret: "maidenJones",
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
app.use(expressSanitizer());
app.use(function(req, res, next){
res.locals.currentUser = req.user;
res.locals.error = req.flash("error");
res.locals.success = req.flash("success");
next();
});
등록 경로 : 나는 다음과 같은 설정을 가지고
router.post("/register", function(req, res){
var newUser = new User({username: req.body.username, image: req.body.image});
User.register(newUser, req.body.password, function(err, user){
if(err){
res.redirect("/blogs");
console.log(err);
}
passport.authenticate("local")(req, res, function(){
res.redirect("/blogs");
});
});
});
감사합니다. 내가 완전히 이해하는지 모르겠다. 두 암호 필드가 일치하는 곳은 어디입니까? 이것을 내 코드 – DaveB1
에 구현하는 방법을 모르는 경우 jquery 또는 angle을 사용하여 제출하기 전에 클라이언트 측에서 양식의 유효성을 검사해야합니다. 그런 경우가 아니며 서버 측에서 유효성을 검사하려는 경우 (이유를 볼 수 없음), 여전히 로컬 스트 레이지 내에서 수행해야합니다. –
죄송합니다. 저는 이것에 초심자가 조금 있습니다. 그래서 본질적으로 패스워드 확인 필드는 제출되지 않을 것입니까? 비교할 분야 일 뿐이에요? – DaveB1