首先,我有一个由我设计的网站,因为我是一名前端设计师。我有后端服务器的API,由其他人创建。
我已成功发出请求,并通过auth令牌从服务器回复,并创建了会话。使用jQuery Ajax,我进行了调用,并在成功的HTTP状态201上将用户重定向到其他页面。但是一旦重定向到其他页面,似乎我的会话被终止了。
现在如何使用服务器创建的会话,让用户在点击注销后浏览网站。会议结束了。?
在PHP中,我们可以使用$ _SESSION来处理这些事情,并在每个页面中调用此会话变量来检查会话。因此,如果它不在那里,我们可以重定向用户登录或显示一些消息,说明会话结束。
但我想用jQuery做到这一点,我根本不想使用PHP。我怎么能这样做。
这是我的形式snippit。
Node
这是我的jQuery snippit
<form id="login-form" action="http://192.168.52.166:6000/api/2/users/login/" method="post">
<p><label for="email">Email</label>
<input type="email" name="email" id="email"></p>
<p><label for="password">Password</label>
<input type="password" name="password" id="password"></p>
<button value="Submit" type="submit">Login</button>
</form>
注意:我正在使用JS Cookie设置auth令牌,该令牌在服务器响应时收到。
这是请求和响应,取自Wireshark。
$('form').on('submit', function(event) {
var data = {}
$(this).serializeArray().map(function(x) {
data[x.name] = x.value;
});
$.ajax({
url: $(this).attr('action'),
method: $(this).attr('method'),
data: JSON.stringify(data),
contentType: 'application/json',
dataType: 'json',
statusCode: {
404: function() {
$("div.error-notif").show();
},
201: function() {
top.location.href = 'page.html';
}
},
success: function(response) {
console.log(response);
jsonString = JSON.stringify(response);
obj = JSON.parse(jsonString);
$('div#json-response').append(obj.auth_token);
$("div.success-notif").show();
$("div.error-notif").hide();
Cookies.set("authtoken", obj.auth_token);
alert(Cookie("authtoken"));
},
complete: function(xhr, status) {
console.log(status);
}
});
return false;
});
现在我不知道接下来该做什么。让我再次重新解析我的问题。
1)我想使用表单中的值调用API进行登录。如果用户是真实的,服务器应该使用JSON中的响应进行侦听。 (我已经完成了它。)
2)现在登录后,我需要将用户重定向到其他页面。我也用状态代码完成了它。
3)但是,一旦我重定向,我必须让会话停留,以便用户可以在网站上工作,直到他/她点击退出。
我该怎么做?
如果我的问题不明白,请告诉我。我会尽力解释清楚。