【发布时间】:2012-10-20 19:28:54
【问题描述】:
所以,我正在尝试为网络应用创建登录功能。
登录由 JSON 接口处理。用户输入经过检查的用户名和密码,如果正确,则 JSON 接口发回一个令牌。我猜这就是会话应该开始的地方。
<script>
$(document).ready(function(){
$("#loginForm").validate({
rules: {
username: {
required: true,
digits: true
},
password: {
required: true
}
},
submitHandler: function(form) {
data = JSON.stringify({
"jsonrpc": "2.0",
"method": "login",
"params": {
"params": {
"username": $('#username').val(),
"password": $('#password').val()
}
}
});
$.ajax({
url:"http://domain.local:1234/trip",
type:"POST",
crossDomain: true,
dataType: "json",
data : data,
headers: {
'Content-Type': "application/json; charset=utf-8"
},
success: function(data){
if(data.result.token != null) {
window.location.href = "functions/login.php?token=" + data.result.token;
}
else $("#result").html("Invalid username and/or password.");
}
});
return false;
}
});
});
</script>
我的login.php 是应该进行会话处理的地方(对吗?)。如果可能的话,我不想使用cookies。到目前为止,这是我唯一拥有的东西(这是我第一次尝试会话)。
<?php
session_start();
$token = $_POST['token'];
?>
当用户登录时,我需要将它们发送到overview.php。当有令牌时,应该从login.php 文件完成,还是应该从index.php 完成,而不是前往login.php?
另外,我如何检查用户访问的页面上是否存在活动会话?我需要每个页面上的令牌来对 JSON 接口进行新的调用。
最后,当用户需要退出时,我想我会把他们带到logout.php 或类似的地方并在那里结束会话?
非常感谢您的帮助!
【问题讨论】:
-
$_POST['token'];应该是 $_GET['token'];当您在 url 中传递它时。
标签: php jquery ajax json session