2013-03-08 2 views
0

TideSDK를 사용하여 데스크탑 응용 프로그램에 로그인 시스템을 만들고 싶습니다. PHP 세션을 사용하려고했지만 응용 프로그램을 실행하고 다른 페이지로 연결되는 링크를 클릭하면 설정 한 세션이 사라집니다. 그러나 웹 브라우저에서 실행하면 제대로 작동합니다.TideSDK Desktop : PHP 세션으로 로그인 시스템을 만드는 방법은 무엇입니까?

검색을 시도했지만 내 질문에 관련된 질문을 찾을 수 없습니다.

TideSDK Desktop에서 PHP 세션을 다루는 방법을 알고 싶습니다. 인증 시스템을 만들 수있는 대안이 있습니까?

도움 주셔서 감사합니다.

답변

1

100 % 확실하지 않지만 세션과 같은 정보를 유지하려면 SQLite DB의 Ti.Properties 또는 localStore를 사용하는 것이 좋습니다.

+0

최종 솔루션을 게시 해 주셔서 감사합니다. 많은 질문에 대해 말할 수있는 것 이상으로 많은 도움이되었습니다. – Chris

0

내가 문제를 해결하는 방법은 다음과 같습니다 다음 TideSDK 측

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

:

$.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'); 
     } 
    } 
}); 

그런 다음 다시 서버에 각각 연결되는 PHP 측

다음과 같이 초기화 됨 :

var httpClient = Ti.Network.createHTTPClient(); 
httpClient.setCookie('PHPSESSID', Ti.App.Properties.getString('sessionId')); 

그리고 나서 작동합니다.