ember.js - 使用简单 auth/torii 获取访问令牌
ember.js - getting access token using simple auth/torii
我正在使用 ember.js、simple auth 和 torii for oauth with Spotify。我目前可以正常登录和注销,查看资源我可以看到我正在从 Spotify 获取访问令牌。
当我按照简单的身份验证文档所述登录 session.data
时,我得到一个对象,其中包含我的所有数据,包括我的访问令牌。但是,我似乎无法提取该访问令牌。我试过 session.data.authenticated
只访问对象的下一层,但是 returns 是一个空对象。如果我尝试到达 access_token
,我会得到 undefined
calling 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() })
如何获取我的访问令牌?
session.data.authenticated
在您登录到控制台时未定义。
this.get('session').authenticate(...)
是异步的,returns 是一个承诺。通过在调用后立即登录到控制台,身份验证可能尚未完成。
尝试做:
this.get('session').authenticate(...).then(() => {
console.log(this.get('session.data.authenticated'));
});
我正在使用 ember.js、simple auth 和 torii for oauth with Spotify。我目前可以正常登录和注销,查看资源我可以看到我正在从 Spotify 获取访问令牌。
当我按照简单的身份验证文档所述登录 session.data
时,我得到一个对象,其中包含我的所有数据,包括我的访问令牌。但是,我似乎无法提取该访问令牌。我试过 session.data.authenticated
只访问对象的下一层,但是 returns 是一个空对象。如果我尝试到达 access_token
,我会得到 undefined
calling 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() })
如何获取我的访问令牌?
session.data.authenticated
在您登录到控制台时未定义。
this.get('session').authenticate(...)
是异步的,returns 是一个承诺。通过在调用后立即登录到控制台,身份验证可能尚未完成。
尝试做:
this.get('session').authenticate(...).then(() => {
console.log(this.get('session.data.authenticated'));
});