0

Spotify での oauth には、ember.js、簡易認証、torii を使用しています。現在、問題なくログインおよびログアウトできます。リソースを見ると、Spotify からアクセス トークンを取得していることがわかります。

単純な認証ドキュメントが言うようにログインするsession.dataと、アクセストークンを含むすべてのデータを含むオブジェクトを取得しています。しかし、そのアクセストークンを引き出せないようです。オブジェクトの次のレベルにアクセスしようとsession.data.authenticatedしましたが、空のオブジェクトが返されます。に行こうとするとaccess_token、 にundefined 電話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() })

アクセス トークンを取得するにはどうすればよいですか?

4

1 に答える 1

1

session.data.authenticatedコンソールにログインしている時点では未定義です。

this.get('session').authenticate(...)は非同期で、promise を返します。呼び出しの直後にコンソールにログインすると、認証がまだ完了していない可能性があります。

やってみてください:

this.get('session').authenticate(...).then(() => {
  console.log(this.get('session.data.authenticated'));
});
于 2016-08-08T07:48:19.950 に答える