我在注册/登录功能的路由方面遇到了问题,因为我没有单独的注册或登录页面。这两个功能都可以通过' /'完成(通过模态)。
这可能吗?我可以分开' /登录'和' /注册'路线,以及单独的页面,但这会破坏当前模态的功能。它看起来并不酷。
app.post('/', function(req, res){
console.log(req.body);
var type = req.body.type;
if(type === 'signup'){
console.log('type is signup')
passport.authenticate('local-signup', {
successRedirect: '/teacher',
failureRedirect: '#',
failureFlash: true
});
}
if (type === 'login'){
console.log('type is login')
passport.authenticate('local-login', {
successRedirect: '/teacher',
failureRedirect: '/',
failureFlash: true
})
}
});

<div id="modal-signup" class="modal">
<!-- show any messages that come back with authentication -->
<% if (message.length > 0) { %>
<% $('#createLoginButton').preventDefault(); %>
<% } %>
<form id="signupForm" method="post">
<fieldset>
<div class="modal-content">
<h4 style="color:teal" class="text-teal">Sign Up</h4>
<!-- show any messages that come back with authentication -->
<% if (message.length > 0) { %>
<div class="alert alert-danger"><%= message %></div>
<% } %>
<P><label>Username:</label><input type="text" name="signupUsername"/></P>
<P><label>Password:</label><input type="password" name="signupPassword"/></P>
<input type="hidden" value="signup" name="type"/>
</div>
<div class="modal-footer">
<a href="#" id="createLoginButton" class="modal-action modal-close waves-effect waves-green btn-flat">Create Your Login</a>
</fieldset>
</form>
</div>
<div id="modal-login" class="modal">
<form>
<fieldset>
<div class="modal-content">
<h4 style="color:teal" class="text-teal">Log In</h4>
<P><label>Username:</label><input type="text" id="signupUsername"/></P>
<P><label>Password:</label><input type="password" id="signupPassword"/></P>
<input type="hidden" value="login" name="type"/>
</div>
<div class="modal-footer">
<a href="#!" id="loginButton" onclick="submit" class="modal-action modal-close waves-effect waves-green btn-flat">Login</a>
</fieldset>
</form>
</div>
&#13;
答案 0 :(得分:0)
Chris提出了一个很好的观点,你可以使用不同的路由,因为AJAX调用会进行登录,但是你可以按照自己的方式完成此任务。
你可以这样打电话给护照:
passport.authenticate('local-login', {
successRedirect: '/teacher',
failureRedirect: '/',
failureFlash: true
})(req, res);