多页面多页面应用程序中基于令牌的身份验证

时间:2019-03-14 13:01:26

标签: javascript authentication servlets session-cookies

我创建了一个Web应用程序,用户可以在其中在登录页面上输入他的电子邮件和密码。当按下登录按钮时,包含电子邮件和密码的ajax帖子将发送到服务器。服务器检查密码正确后,将设置带有会话ID的会话cookie,并返回HTTP OK状态。在客户端,成功后,将“ window.location”设置为“ private / home”(由Servlet过滤器保护的页面,该Servlet过滤器检查会话cookie并验证客户端身份),并且客户端可以正常进行。但是,对于移动应用程序编程,我知道cookie不能很好地工作,最好在客户端和服务器之间在HTTP标头中来回传递令牌以维护会话。但是,我的问题是如何在多页Web应用程序中实现此功能并在页面之间移动。据我所知,当您执行“ window.location”或“ href”时,无法设置标题。

我的登录页面代码

$("#loginButton").click(function(){
        var emailText = $("#emailInput").val().trim() ; //get input from email field in form
        var passwordText = $("#passwordInput").val() ;//get input from password field in form
        var allPassed = true ;
        $("#emailErrorMessage").text("") ;
        $("#passwordErrorMessage").text("") ;
        if(emailText == "") {
            $("#emailErrorMessage").text("Please enter a valid email") ;
            allPassed = false ;
        }
        if(passwordText == "") {
            $("#passwordErrorMessage").text("Please enter a valid password") ;
            allPassed = false ;
        }
        if(allPassed) {
            $.ajax({
                  type: "POST",
                  url: "loginUser",
                  data: {email:emailText , password:passwordText} ,
                  success: function(data,status,xhr) {
                      window.location = "private/home" ;
                  },
                  error: function(xhr , status , error) {
                      $("#passwordInput").val("") ;
                      $("#passwordErrorMessage").text("Incorrect email or password") ;
                  }
            });
        }

    }) ;

0 个答案:

没有答案