2016-08-08 4 views
0

Spotify로 oauth에 ember.js, 간단한 인증 및 토리를 사용하고 있습니다. 현재 로그인하고 로그 아웃 할 수 있으며 Spotify에서 액세스 토큰을 얻고 있음을 알 수있는 리소스를 볼 수 있습니다.ember.js - 간단한 인증/토리를 사용하여 액세스 토큰 받기

간단히 정식 문서로 말하면 session.data로 기록하면 내 액세스 토큰을 포함한 모든 데이터가 포함 된 개체가 표시됩니다. 그러나, 나는 그 액세스 토큰을 꺼낼 수 없습니다. 나는 객체의 다음 단계에 액세스하기 위해 session.data.authenticated을 시도했지만 빈 객체를 반환합니다. access_token에 접속하려고 시도하면 undefinedcalling session.data.access_token이됩니다.

app/controllers/application.js :

import Ember from 'ember' 

    export default Ember.Controller.extend({ 
     session: Ember.inject.service('session'), 

     actions: { 

     login() { 
      this.get('session').authenticate('authenticator:torii', 'spotify-oauth2-bearer') 
      console.log(this.get('session.data')) 
     }, 

     logout() { this.get('session').invalidate() } 
     } 

    }) 

app/authenticators/torii.js는 :

import Ember from 'ember' 
    import ToriiAuthenticator from 'ember-simple-auth/authenticators/torii' 

    export default ToriiAuthenticator.extend({ torii: Ember.inject.service() }) 

는 어떻게 액세스 토큰을받을 수 있나요?

답변

1

session.data.authenticated은 콘솔에 로깅 할 때 정의되지 않습니다.

this.get('session').authenticate(...)은 비동기이며 약속을 반환합니다. 통화 직후 콘솔에 로그인하면 인증이 아직 완료되지 않았을 수 있습니다.

시도의 행함 :

this.get('session').authenticate(...).then(() => { 
    console.log(this.get('session.data.authenticated')); 
});