ember-simple-auth cookieExpirationTime无效

时间:2016-05-04 22:15:41

标签: ruby-on-rails ember.js devise ember-simple-auth

我需要实现一个"记住我"我的申请中的功能。 我正在使用内置的设计验证器,并将以下内容作为我的会话存储:

// app/session-stores/application.js
import CookieStore from 'ember-simple-auth/session-stores/cookie';

export default CookieStore.extend({
  cookieName: 'myapp-session-cookie'
});

我有一个login-form组件,其中包含以下内容:

rememberMe: false,
setExpirationTime() {
  const expirationTime = this.get('rememberMe') ? (14 * 24 * 60 * 60) : null;
  this.set('session.store.cookieExpirationTime', expirationTime);    
},

actions: {
  authenticateWithDevise() {
    this.setExpirationTime();
    let { identification, password } = this.getProperties('identification', 'password');
    this.get('session').authenticate('authenticator:devise', identification, password).then(() => {
      this.sendAction('onLoggedIn');
    }).catch((reason) => {
      this.set('errorMessage', reason.errors[0]);
    });
  }
}

当然在相应的模板中我有:

<form role="form" {{action "authenticateWithDevise" on="submit"}}>
  {{input type="email" value=identification placeholder="Email" class="icon-email"}}
  {{input type="password" value=password placeholder="Password" class="icon-lock"}}
  {{input id='remember_me' type='checkbox' checked=rememberMe}}
</form>

无论是cookieExpirationTime设置还是null,会话都不会被记住。 我的问题是:我是否还应该在服务器端实现其他功能?我目前正在使用设计rememberable。此外,我尝试在这里和github上搜索,但只能找到过时的对话和代码,如下所示:

https://github.com/simplabs/ember-simple-auth/pull/451

有人可以解释一下吗?谢谢!

0 个答案:

没有答案