2013-03-08 151 views
0

我想使用TideSDK在我的桌面應用程序中創建一個登錄系統。 我試圖使用PHP會話,但是當我運行應用程序並單擊某個鏈接到另一個頁面時,我設置的會話消失。但是,如果我在Web瀏覽器上運行,它可以正常工作。TideSDK桌面:如何使用PHP會話創建登錄系統?

我試圖搜索,但我找不到涉及我的問題的一些問題。

我想知道如何處理TideSDK桌面中的PHP會話還是有其他選擇來創建身份驗證系統?

謝謝你的幫助。

回答

1

不是100%確定你要做什麼,但要堅持一些信息,比如會話,最好使用SQLite數據庫的Ti.Properties或localStore。

+0

感謝您發佈您的最終解決方案。不僅可以說很多問題,而且幫助我很多。 – Chris 2014-01-08 08:27:26

0

我解決了這個問題的方法是這樣的:

在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')); 

然後它的工作。