2016-08-08 45 views
0

我使用ember.js,简单的身份验证,并牌坊与Spotify的的OAuth。我目前可以登录并注销,只需查看资源,我就可以看到我正在从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')); 
}); 
相关问题