2016-08-08 11 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')); 
}); 
関連する問題