通过容器获取Ember Simple Auth会话

时间:2014-08-14 00:45:59

标签: session authentication ember.js ember-simple-auth

SO answer之后,我正在尝试使用container.lookup('simple-auth-session:main');获取Ember Simple Auth会话,但这会让我未定义

我正在使用Ember Cli和Ember Simple Auth Devise身份验证器。

1 个答案:

答案 0 :(得分:2)

@ marcoow上面的评论就像一个魅力。他指着我this example

FIRST:添加注册自定义会话的初始值设定项

Ember.Application.initializer(
  name: 'authentication'
  before: 'simple-auth'
  initialize: (container, application) ->
    container.register('session:custom', App.CustomSession)
)

第二:用自定义会话替换会话

window.ENV['simple-auth'] = {
  session: 'session:custom'
}

THIRD:定义自定义会话

App.CustomSession = SimpleAuth.Session.extends(
  currentUser: (->
    unless Ember.isEmpty(@user_id)
      @container.lookup('session:main').load('user', @user_id)
      //Note! I'm using Ember Persistence Foundation, therefore 'session:main', 
      //but if you're using Ember Data, use 'store:main'
  ).property('user_id')
)