2016-11-25 53 views
-1

我有一个快递服务器和HTML开发的登录页面(使用jQuery)。点击登录按钮后,jQuery发出一个HTTP请求来表达服务器,并且在用户得到验证后,用户应该被重定向到具有诸如名称,性别,年龄等数据(从服务器本身的mongoDB中获取)的一些数据的登录页面。当我做res.sendFileres.redirect时,参数(姓名,年龄,性别)无法在需要回应的视图上发送。快递和nodejs应用程序的响应

的Jquery:

$("#submit").click(function() { 
    user = $("#email").val(); 
    pass = $("#password").val(); 
    $.post("https://localhost:443/login", { 
    user: user, 
    password: pass 
    }, function(response) { 
    if (response) { 
     alert("login success" + response.userName); 
    } 
    }); 
}); 

HTML:

<form id="grad"> 
    <h1 style="margin-top: -10px; text-shadow: 1px 1px whitesmoke;">Login</h1> 
    <h3 style="padding-bottom: 30px;font-size: 22px ">Please enter email ID and password.</h3> 
    <div class="group"> 

    <input type="email" id="email" name="email"><span class="highlight"></span><span class="bar"></span> 
    <label>Email ID</label> 
    </div> 
    <div class="group"> 
    <input type="password" id="password" name="password"><span class="highlight"></span><span class="bar"></span> 
    <label>Password</label> 
    </div> 

    <div class="group"> 
    <input type="submit" id="submit" class="button buttonRed" value="Login" onclick="validateUser()" /> 
    <input type="reset" class="button buttonRed" value="Reset" /> 
    </div> 
</form> 

快递:

app.post('/login', function (req, res) { 
    // some logic to validate user and fetch details, which will be used on view. 
    res.sendFile('landing**strong text**page.html', { root: "public" }); 
}) 
+0

你错过了一些代码 – mike510a

回答

0

的布线后应保存用户在会话中返回jQuery代码的响应。实质上,来自邮政路线的回应应该只是成功或回应。

还应该有一个获取路线将用户重定向到主页(或者您希望登录后用户的页面)。 此获取路线将首先检查会话中是否存在用户,然后进行相应的重定向。

使用express-session将会话保存在应用程序中。

0
  • 初学者的简单解决方案。这不是生产现场的实际解决方案,只是想要学习基础知识的初学者。

jQuery的

$("#submit").click(function() { 
    user = $("#email").val(); 
    pass = $("#password").val(); 
    $.post("https://localhost:443/login", { 
    user: user, 
    password: pass 
    }, function(response) { 
    $('body').append(response); //append html to body returned from /login 
    }); 
}); 

Express服务器:

app.post('/login', function (req, res) { 
    // some logic to validate user and fetch details, which will be used on view. 
    var userInfo = validateAndFetchDetailFunc(); 
    res.send('Username: ' + userInfo.name + '<br>Gender: ' + userInfo.gender); 
}) 

  • 真正的解决方案应该使用会话管理登录·塞西为用户打开。

    1. 用户登录用的用户名/密码,
    2. 创建在服务器端的会话,发送回一个会话密钥或访问令牌给客户端。
    3. 当客户端请求的用户信息,利用会话密钥或访问令牌来获取用户信息
    4. 渲染与保存的会话

加急服务器的用户信息的HTML页面,您可以开始与express-session学习会话。