如何在jQuery中使用服务器创建的会话?

时间:2016-11-18 04:21:49

标签: javascript jquery ajax api session

首先,我有一个由我设计的网站,因为我是一名前端设计师。我有后端服务器的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)但是,一旦我重定向,我必须让会话停留,以便用户可以在网站上工作,直到他/她点击退出。

我该怎么做?

如果我的问题不明白,请告诉我。我会尽力解释清楚。

0 个答案:

没有答案