2014-09-05 1 views
2

ember-simple-auth 라이브러리를 사용하여 HMAC 토큰 서명을 수행하기 위해 사용자 지정 인증 자 및 인증자를 구현하고 있으며 각 부분은 잘 격리되어 작동하지만 서로 어긋납니다.ember-simple-auth 인증 프로그램을 선택적으로 비활성화 할 수 있습니까?

승인자를 비활성화하면 인증자가 세션을 정상적으로 시작할 수 있으며 기존 세션이 있으면 권한 부여 프로그램이 api에 대한 모든 요청을 올바르게 인증하지만 둘 다 실행되면 인증자가 초기 로그인 요청을 기록합니다 .

승인 요청에 대한 승인자를 건너 뛰거나 요청을 수정하는 ajaxPrefilter을 일시적으로 사용 중지하는 방법이 있습니까? 아니면 이것에 대해 더 좋은 방법이 있습니까?

인증 :

var CustomAuthenticator = Base.extend({ 
    authenticate: function(credentials) { 
    var data = { 
     user: { 
     email: credentials.identification, 
     password: credentials.password 
     } 
    }; 

    return Ember.$.post(MyApplicationENV.API_URL + '/users/login', data).then(function(response, statusText, xhr) { 
    if (xhr.status === 201) { 
     return response; 
    } 
    }).fail(function() { 
    console.warn('login FAILED!'); 
    }); 
},... 

권한 부여 :

var CustomAuthorizer = Base.extend({ 
    authorize: function(jqXHR, requestOptions) { 
    var timestamp = parseInt((new Date().getTime()/1000), 10); 
    var hashedToken = window.md5(timestamp + ':' + this.get('session.authentication_token')); 
    var data = 'user_token=' + hashedToken; 
    data += '&user_email=' + this.get('session.email'); 
    data += '&timestamp=' + timestamp; 
    requestOptions.data = data; 
    } 
}); 

답변

2

당신은 권한 부여에 ('IsAuthenticated는')에 Session.get 확인하고 그게 사실 경우에만 요청 권한을 부여해야합니다. 그렇게하면 초기 로그인 요청을 승인하지 않습니다.