快递/护照 - 我在同一页面上有两个表格,如何将这些表格发送到两个不同的passport.authentications。

时间:2015-10-06 00:34:49

标签: javascript express passport.js

我在注册/登录功能的路由方面遇到了问题,因为我没有单独的注册或登录页面。这两个功能都可以通过' /'完成(通过模态)。

这可能吗?我可以分开' /登录'和' /注册'路线,以及单独的页面,但这会破坏当前模态的功能。它看起来并不酷。



  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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

Chris提出了一个很好的观点,你可以使用不同的路由,因为AJAX调用会进行登录,但是你可以按照自己的方式完成此任务。

你可以这样打电话给护照:

passport.authenticate('local-login', {
      successRedirect: '/teacher',
      failureRedirect: '/',
      failureFlash: true
      })(req, res);