我想使用TideSDK在我的桌面应用程序中创建一个登录系统。 我试图使用PHP会话,但是当我运行应用程序并单击某个链接到另一个页面时,我设置的会话消失。但是,如果我在Web浏览器上运行,它可以正常工作。TideSDK桌面:如何使用PHP会话创建登录系统?
我试图搜索,但我找不到涉及我的问题的一些问题。
我想知道如何处理TideSDK桌面中的PHP会话还是有其他选择来创建身份验证系统?
谢谢你的帮助。
我想使用TideSDK在我的桌面应用程序中创建一个登录系统。 我试图使用PHP会话,但是当我运行应用程序并单击某个链接到另一个页面时,我设置的会话消失。但是,如果我在Web浏览器上运行,它可以正常工作。TideSDK桌面:如何使用PHP会话创建登录系统?
我试图搜索,但我找不到涉及我的问题的一些问题。
我想知道如何处理TideSDK桌面中的PHP会话还是有其他选择来创建身份验证系统?
谢谢你的帮助。
不是100%确定你要做什么,但要坚持一些信息,比如会话,最好使用SQLite数据库的Ti.Properties或localStore。
我解决了这个问题的方法是这样的:
在PHP端:
public function login($email_address, $password) {
$email_address = filter_var($email_address, FILTER_VALIDATE_EMAIL);
$password = filter_var($password, FILTER_SANITIZE_STRING);
if (is_valid_login($email_address, $password)) {
return json_encode(array('status' => 'Logged in', 'session_id' => session_id()));
}
return json_encode(array('status' => 'Failed login'));
}
在TideSDK侧:
$.ajax({
type: "POST",
url: login_url,
data: {
'email_address' : email_address,
'password' : password
},
success: function(data, status, xhr) {
if (data.status == 'Logged in') {
Ti.App.Properties.setString('loggedIn', 'true');
Ti.App.Properties.setString('sessionId', data.session_id);
} else {
Ti.App.Properties.setString('loggedIn', 'false');
}
}
});
然后,每个连接返回到服务器像这样初始化:
var httpClient = Ti.Network.createHTTPClient();
httpClient.setCookie('PHPSESSID', Ti.App.Properties.getString('sessionId'));
然后它的工作。
感谢您发布您的最终解决方案。不仅可以说很多问题,而且帮助我很多。 – Chris 2014-01-08 08:27:26