2012-06-17 2 views
3

PHP 웹 서비스를 사용하여 사용자의 로그인/자격 증명을하는 앱을 만드는 중입니다.jQuery mobile 및 PhoneGap 세션을 사용하여 로그인하지 않은 상태에서 사용자가 페이지를 "방문"하거나 방문하지 못하도록합니다.

localstorage (phonegaps 로컬 스토리지 API의 일부)를 사용하여 사용자가 앱을 열 때 계속 로그인하지 않아도되는지 확인합니다. 이것은 로컬 저장소에 사용자 이름과 암호를 저장하고 응용 프로그램이 열릴 때 확인합니다. 그들이 로그 아웃해야한다고 생각하면 로컬 로그를 지우는 탭 이벤트에 바인드 된 간단한 로그 아웃 버튼이 있습니다. 로그 아웃 할 때

$('#logout').live('tap',function(event){ 

    window.localStorage.clear(); 
    $.mobile.changePage("#loginPage", {transition: "none"}); 


}); 

하지만 ..., 그들은 여전히 ​​"환영, (사용자 이름)"는 부분이 모두 있기 때문에 이해가 나던 보안 영역으로 전화 뒷면의 버튼을 클릭하여 얻을 수 있습니다 엉망진창 등등 ...

Im 그들이 열어 본 페이지가 어떤 사람이 로그인했는지 확인하는 방법이 있는지 궁금합니다.

+1

Coldfusion에서도 동일한 문제가 있습니다. 사용자가 로그 아웃 할 때 rel = "external"인 로그인 페이지로 리디렉션하여 문제를 해결하려고합니다. 이것은 앱 인스턴스를 다소 "덤프"하고 새 인스턴스를 만들어야합니다. 또한 로그인 상태를 확인하는 모든 페이지에 서버 측 리다이렉션을 설정하고 설정하지 않은 경우 로그인 페이지로 리디렉션됩니다. 이것을 사용할 수 있는지 확실하지 않지만 시작일 것입니다 – frequent

+1

고마워요! 그것으로 아픈 실험. 나는 아이디어를 가지고 있었지만 각 페이지 init에서 실행되는 jQuery 함수를 사용하여 localStorage에 사용자 이름 및/또는 암호가 있는지 확인합니다. 없는 경우에는 mobile.changePage를 loginpage로 지정하십시오. 이게 효과가 있니? – JamesG

+1

당신은 7 초까지 나를 때려! –

답변

5

사용자가 로그온했는지 확인하기 위해 페이지의 pagebeforeshow 이벤트에 바인딩하여 자격 증명이 로컬 저장소에 있는지 확인하십시오.

사용자가 로그온하지 않은 경우 preventDefault을 호출하여 pageChange을 중지하거나 처리기에 전달 된 toPage을 수정하여 사용자를 loggedOffPage로 리디렉션 할 수 있습니다.

Page change events 섹션을 JQM Events page에서 참조하십시오.

관련 문제