2012-07-08 3 views
2

난 당신이 로그인 할 수있는 ST2 응용 프로그램을 만드는거야이/I 정상적인 방법으로 로깅 무엇인지 궁금 전체 응용 프로그램에서 사용자의 상태에 봉착 등센차 터치 2 - 로그인 사용자 상태

등록 .

데이터를 가져 오거나 저장하기 위해 REST 프록시가있는 사용자 모델이 있습니다. 당신은 내가 사용자 잡기 위해이 일을하고있어 응용 프로그램을로드 할 때 :

launch: function() { 
    var User = Ext.ModelManager.getModel('App.model.User'); 
    User.load("", { 
     success: function (user) { 

      // I have the user here but it's only within this scope 

     } 
    }); 
} 

을하지만이 일이이 함수 내에서만 사용할 수 ... 그래서 사람들은 보통 전체에 걸쳐 사용자의 연락을 취하는 얻기 위해 무엇을해야합니까 신청? ,

launch: function() { 
    var User = Ext.StoreManager.get('User'); 
    User.load(function(user) { 
     // Do application logged in stuff 
     self.getApplication().fireEvent('userLogsIn'); 
    }); 
} 

someRandomFunction: function() { 
    var user = Ext.StoreManager.get('User').getAt(0), 
     email = user.get('email'); 
     console.log(email); 
} 

감사

+0

당신이 원하는 것을 분명히하지 않습니다 ... 당신은 해결책에 대해 묻고 있습니까, 아니면 당신의 의견을 확인하고 싶습니까? 내 말은 application.user = user ... – olegtaranenko

+0

사용자가 로그인 한 상태에서 응용 프로그램 전체에서 상태를 유지하는 방법에 대해 사람들이 어떻게하는지 묻는 것입니다. Ext.StoreManager.get ('User')를 사용하여 AJAX 호출이 이미 완료되었으므로 전체 응용 프로그램에서 데이터를 가져올 수 있습니다. 하지만 Ext.ModelManager.get ('App.model.User')을 수행 할 때마다 매번로드해야합니다. 그래서 일반적으로 이것을하는 방법은 무엇입니까? 저장소를 만들려고 생각하고 있지만 사용자 개체가 Singleton 정렬과 같은 경우 배열 배열에 저장된다는 것은 의미가 없습니다. –

답변

1

도미닉 :로 검색 한 후

application.user = user; 

를하거나 사용자의 ID와 저장소를 만들려면 어떻게해야합니까, 사용자 모델을 사용하고 : 단지 같은 응용 프로그램 내에서 보관 일반적으로 JS 애플리케이션에 로컬로 저장 한 정보는 신뢰할 수 없습니다. 스푸핑되거나 변경 될 수 있습니다.

당신이해야 할 일은 서버 백엔드에 사용자 이름/비밀번호 조합을 보내는 것입니다. 그런 다음 서버는 암호화 된 쿠키를 반환해야 응용 프로그램이 다음과 같은 각 요청을 통해 서버로 다시 보내집니다. 이 쿠키 서버의 암호를 해독하고 확인하는 것만으로 로그인 한 사용자의 신원을 확인할 수 있습니다.

+0

젠드 프레임 워크/PHP를 사용하고 있습니다. 따라서 애플리케이션을 처음로드 할 때 PHP 개체 ID를 사용하여 서버에서 사용자 개체를 가져옵니다. 요청이 이루어지면 서버 검사가 세션 ID이므로 실제로는 문제가되지 않습니다. 제가 알고 싶었던 것은 다른 페이지들 사이에 이것을 저장하는 방법이었습니다. 페이지를 클릭 할 때마다 사용자에게 요청할 수는 없으므로 실제로 느리게 보입니다. 그들은 서버가 사용자가 로그인하지 않았다는 것을 말하기 때문에 아무 것도 할 수 없습니다. –

+0

서버 측에 신경 쓰지 않는다면 액세스 할 수있는 전역 변수에 로컬로 저장하십시오 코드의 아무 곳에서나 사용할 수 있습니다. – sha