我可以手动将会话状态设置为在embe简单身份验证中进行身份验证吗?

时间:2016-06-21 11:13:05

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

我正在使用django应用程序(subdomainA.example.com)常用的基于会话的身份验证和使用django API(subdomainB.exmaple.com)的SPA。

我在我的自定义身份验证器的恢复方法中检查某些工件,以确定用户当前是否经过身份验证(某些cookie - 似乎很差的解决方案,但任何想法如何做得更好)如果是,我想将ember简单的auth会话设置为认证。

我该怎么办? this.set('session.isAuthenticated', true); 似乎没有正常工作,因为在invalidate我得到了错误: ember.debug.js:16624未捕获错误:断言失败:Session#invalidate要求对会话进行身份验证!

1 个答案:

答案 0 :(得分:1)

您无法将ESA会话设置为手动进行身份验证。实际上,任何编写isAuthenticated属性的尝试都会导致错误。

您可以做的是实现自定义身份验证器,并使用它来验证会话,并使用您传递给authenticate方法的一些静态数据,例如

this.get('session').authenticate('authenticator:my-authenticator', sessionData)

// app/authenticators/my-authenticator.js
…
authenticate(sessionData) {
  return Ember.RSVP.resolve(sessionData);
}