我想使用 TideSDK 在我的桌面应用程序中创建一个登录系统。我曾尝试使用 PHP 会话,但是当我运行应用程序并单击指向另一个页面的某个链接时,我设置的会话消失了。但是,如果我在 Web 浏览器上运行,它可以正常工作。
我试图搜索,但我找不到一些与我的问题有关的问题。
我想知道如何在 TideSDK Desktop 中处理 PHP 会话,或者是否有其他方法可以创建身份验证系统?
谢谢您的帮助。
不是 100% 确定你想做什么,但是要保留一些信息,比如会话,你最好使用 SQLite DB 的 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'));
然后它就起作用了。