1

저는 AngularJs를 사용하는 단일 페이지 어플리케이션에서 작업하고 있습니다. 내 응용 프로그램은 승인을 위해 JWT Authorization 헤더 토큰을 사용합니다. 나는 SPA 응용 프로그램에서 나가는 모든 API 호출에 Authorization 헤더를 추가하는 agularJs 인터셉터를 가지고 있습니다.나가는 켄도 그리드 호출을 차단하여 JWT 인증 헤더를 추가합니다.

최근 응용 프로그램에 Kendo UI를 추가했는데 Kendo Grid에서 만든 API 호출이 Angular 인터셉터를 통과하지 못하는 것으로 나타났습니다.

KendoUi 구성 요소의 모든 API 호출을 가로 채어 인증 헤더 토큰을 추가 할 수있는 명확한 방법이 있습니까?

답변

1
function setAuthHeader(req) { 

     var token = tokenStoreService.getToken(); 
     if (token) { 
      req.setRequestHeader('Authorization', 'Bearer ' + token); 
     } 
    } 

    function setGridAuthorization(dataSource) { 
     if (dataSource && dataSource.transport && dataSource.transport.options) { 
      var opt = dataSource.transport.options; 
      if (opt.read) opt.read.beforeSend = setAuthHeader; 
      if (opt.update) opt.update.beforeSend = setAuthHeader; 
      if (opt.destroy) opt.destroy.beforeSend = setAuthHeader; 
      if (opt.create) opt.create.beforeSend = setAuthHeader; 

     } else if (dataSource && dataSource.transport) { 
      var tran = dataSource.transport; 
      if (tran.read) tran.read.beforeSend = setAuthHeader; 
      if (tran.update) tran.update.beforeSend = setAuthHeader; 
      if (tran.destroy) tran.destroy.beforeSend = setAuthHeader; 
      if (tran.create) tran.create.beforeSend = setAuthHeader; 
     } 
    } 
+0

서버 측 Excel 내보내기는 어떻게됩니까? KendoUi 구성 요소의 "Proxy Excel Export"호출을 모두 가로 채기 위해 승인 헤더 토큰을 추가 할 수있는 깨끗한 방법이 있습니까? 미리 감사드립니다. – sepehr