我想使用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