如何在ember-simple-auth中访问会话属性?

abe*_*ein 3 javascript authentication ember.js

我使用的是自定义Facebook身份验证器,非常类似于ember-simple-auth 示例中给出的身份验证器.我注入性质accountIDaccessToken进入这里的会议:

if (fbResponse.status === 'connected') {
  console.log("AccountID: " + fbResponse.authResponse.userID);
  Ember.run(function() {
  resolve({
     accessToken: fbResponse.authResponse.accessToken,
     accountID: fbResponse.authResponse.userID
  });
});
Run Code Online (Sandbox Code Playgroud)

如果我读的文档正确,我应该能够访问accountID使用session.accountID任何控制器.但是,我能找到它的唯一方法是通过session.store._lastData.accountID,这可能不是正确的方法.

更具体地说,在控制器中,我有一个动作:

createRental: function() {
      var session = this.get('session');
      console.log(session.accountID); // undefined
      console.log(session.store._lastData.accountID); // '123456'
Run Code Online (Sandbox Code Playgroud)

有经验使用ember-simple-auth的人是否知道问题是什么?谢谢!

mar*_*oow 6

你需要使用get:

this.get('session.accountID')
Run Code Online (Sandbox Code Playgroud)

要么

var session = this.get('session');
session.get('accountID')
Run Code Online (Sandbox Code Playgroud)

  • 您永远不应该通过会话访问商店.在模板中使用`session.secure.foo`. (3认同)