2014-10-19 2 views
0

사용자 정의 인증 자 및 인증자를 사용하는 ember-cli 응용 프로그램을 0.0.40 및 ember-cli-simple-auth 0.6.3에서 버전 0.0으로 업그레이드했습니다 .46 및 0.6.7이었다.CustomAuthorizer에 대한 authorize() 메서드가 실행되지 않습니다.

인증은 작동하지만 authorize() 메서드는 실행되지 않으므로 보안 토큰이 헤더에 추가되지 않고 http 401 오류가 반환됩니다.

나는이 crossOriginWhitelist 문제의 부족이 될 수 있다고 다른 곳에서 읽었습니다,하지만 난 내 index.html을이있다 : 나에게 잘 보인다

<script> 
    window.EmberENV = {{EMBER_ENV}}; 
    <!-- Ember Simple Auth relies on window.ENV to read its configuration --> 
    window.ENV = window.EmberENV; 
    window.ENV['simple-auth'] = { 
     authorizer: 'authorizer:custom', 
    crossOriginWhitelist: window.EmberENV.APP.crossOriginWhitelist 
    }; 
</script> 

합니다.

나는 나의 beforeModel() 인증 확인에 아약스 호출이를 추가하여 401 오류를 제거 할 수 있습니다

  beforeSend: function (request) 
      { 
       request.setRequestHeader('Authorization', 'Bearer ' + self.get('session.token')); 
      }, 

을하지만 물론 옳지 않다; 그것은 단지 반창고 일뿐입니다.

누구든지 아이디어가 있습니까?

감사합니다,

BillyB

+0

엠버 간단한 인증이 더 이상 window.ENV에서 콩피를 읽을 수 있지만 엠버 CLI를 사용하는 경우 설정/environment.js에서 앱의 콩피를 사용하지 않습니다. – marcoow

답변

0

가 나는 문제를 발견했다.

ember-cli 버전을 업그레이드하는 것 외에 변경된 사항은 ember-simple-auth에서 ember-cli-simple-auth으로 바뀌는 것입니다. Ember Simple Auth 기본 라이브러리는 Ember CLI Addon으로 패키지되어 있습니다.

후자는 위에 설명한 것처럼 index.html의 인라인 스크립트 대신 ember-cli의 environment.js에서 해당 구성을 허용합니다. 이 작업 방식 :

ENV['simple-auth'] = { 
     authenticationRoute: 'login', 
     routeAfterAuthentication: 'index', 
     routeIfAlreadyAuthenticated: 'index', 
     authorizer: 'authorizer:custom', 
     crossOriginWhitelist: ENV.APP.crossOriginWhitelist 

간단한 인증 :이 문서는 잘 문서화되지 않았거나 적어도 놓쳤습니다.

-BillyB

관련 문제