0

我想使用 TideSDK 在我的桌面应用程序中创建一个登录系统。我曾尝试使用 PHP 会话,但是当我运行应用程序并单击指向另一个页面的某个链接时,我设置的会话消失了。但是,如果我在 Web 浏览器上运行,它可以正常工作。

我试图搜索,但我找不到一些与我的问题有关的问题。

我想知道如何在 TideSDK Desktop 中处理 PHP 会话,或者是否有其他方法可以创建身份验证系统?

谢谢您的帮助。

4

2 回答 2

1

不是 100% 确定你想做什么,但是要保留一些信息,比如会话,你最好使用 SQLite DB 的 Ti.Properties 或 localStore。

于 2013-03-08T15:48:35.933 回答
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'));

然后它就起作用了。

于 2013-08-09T05:54:19.600 回答