2013-01-15 1 views
0

나의 Sencha Touch 2.1에서 성공적으로 로그인 한 후에는 토큰이 서비스에서 되돌려 보내 져야합니다.이 토큰은 이후의 모든 서비스 호출과 함께 저장되고 사용되어야합니다. 필자는 원격 웹 서비스를 다루기 때문에 모든 매장에서 JsonP 프록시를 사용하여 데이터를 가져와 모든 토큰에 토큰을 추가하려고합니다. JsonP는 헤더를 지원하지 않으므로이 토큰을 url 매개 변수로 추가 할 계획이지만 응용 프로그램에서 발생하는 모든 JsonP 호출에 대해이 작업을 수행하는 방법을 모르겠습니다.모든 JsonP 요청과 함께 사용자 토큰을 보내는 방법은 무엇입니까?

AJAX 호출에 대한 비슷한 질문이 Send user details (session token) within every AJAX requests (Sencha Touch 2)


을 발견하지만, JSONP는 'beforerequest'이벤트와 헤더를 지원하지 않기 때문에, 나는 붙어입니다.

이 URL 매개 변수를 추가하기 위해 수신 대기/차단할 수있는 다른 이벤트가 있습니까? 이 기능을 가진 기본 프록시 클래스를 작성하는 방법이 있습니까? 이를 수행하는 방법을 알고 있다면 몇 가지 예를 들려주십시오.

답변

0

좋아, 나는 나를 위해 일한 방법을 발견했다.

JsonP 프록시를 확장하고 buildUrl 메소드에서 캐쉬 토큰을 추가 했으므로 이제는 모든 상점에서이 프록시를 사용합니다. 다음은 코드입니다.

Ext.define('myshop.proxy.CustomJsonpProxy', { 
    extend: 'Ext.data.proxy.JsonP', 
    alias: 'proxy.customjsonpproxy', 
    buildUrl: function(request) { 
    var me  = this, 
     url  = me.callParent(arguments); 
    if(!Ext.isEmpty(loggedInUserToken)){ 
     url = Ext.urlAppend(url, "token="+loggedInUserToken); 
    } 
    return url; 
    } 
}); 

더 좋은 방법을 알고 계시다면 공유하십시오.

관련 문제