2015-01-07 3 views
1

Я довольно новичок в Ember.js и ember-simple-auth, поэтому надеюсь, что вы можете мне помочь.Недействительный сеанс в браузере закрыть в ember-simple-auth?

В моем приложении используется ember-simple-auth. Я хочу сделать недействительным сеанс, когда браузер закрыт или пользователь покидает страницу. Это должно произойти только в том случае, если пользователь вошел в систему (зачем его помещать в действие аутентификации).

Я пытался что-то вроде этого:

actions: { 
    authenticate: function() { 
     var _this = this; 
     this._super().then(null, function(message) { 
      _this.set('errorMessage', message); 
     }); 

     $(window).on('beforeunload',function() { 
      _this.get("session").invalidate(); 
     }); 
    } 
} 

Проблема заключается в том, что она не работает при закрытии браузера. Также, когда я изменяю URL (чтобы оставить приложение, например www.google.com), он переходит на «/» и не открывает нужный URL-адрес.

Итак, вопрос: как я могу аннулировать сеанс при закрытии браузера (или когда пользователь покидает приложение).

Спасибо.

ответ

3

Я не уверен, как вы будете обрабатывать случай, когда пользователь покидает приложение (возможно, вы можете обработать какое-либо событие навигации и сделать недействительным сеанс с this.get("session").invalidate();). Чтобы аннулировать сеанс, когда пользователь закрывает браузер, лучшим решением является использование хранилища сеансов cookie и настройка sessionExpirationTimenull, так что куки-файлы являются куки-сессиями, которые автоматически удаляются при закрытии браузера.

+0

Спасибо, что сработало отлично! Я даже не знал о магазине печенья. – user3660277

Смежные вопросы