Как я динамично установил время истечения для основанной на cookie сессии в направляющих

Вы должны использовать настройку workerDir, чтобы установить правильный путь к другим импортированным js-файлам. Возможно, ваш рекордер инициализирован в app.js , где вы не можете использовать теги шаблонов, такие как {% static %}. Лучший способ - создать глобальную переменную в вашем шаблоне перед загрузкой app.js :

В вашем HTML-шаблоне:

<script>var jsFilesPath = "{% static 'js/' %}"</script>
<script src="{% static 'js/app.js' %}"></script>

В вашем app.js:

if (typeof jsFilesPath !== "undefined") {
    audioRecorder = new WebAudioRecorder(sourceNode, {
      workerDir: jsFilesPath     // must end with slash
    });
}
12
задан Olly 30 October 2008 в 10:56
поделиться

5 ответов

Я наткнулся на этот вопрос после разговора в офисе. Для полноты картины я обнаружил, что сеансы можно истекать после периода бездействия, и это встроено в Rails. В config / environment.rb выполните следующие действия:

config.action_controller.session = {
  :key          => 'whatever',
  :secret       => 'nottellingyou',
  :expire_after => 30.minutes
}

Посмотрите lib / action_controller / session / cookie_store.rb # 114 , чтобы узнать о действующей (очевидно недокументированной) опции. Похоже, это было с момента перехода на Rack sessions в декабре 2008 года.

15
ответ дан 2 December 2019 в 06:10
поделиться

Вы могли попытаться добавить следующую строку к своему environment.rb файлу:

session :session_key => 'my_session_key'
session :session_expires => 1.day.from_now

С другой стороны, можно установить опции сессии следующим образом:

ActionController::Base.session_options[:session_expires] = 1.day.from_now

Я не протестировал это полностью, таким образом, YMMV.

-1
ответ дан 2 December 2019 в 06:10
поделиться

Используйте это, это работает на меня в направляющих 2.1.x:

SlidingSessions

У меня в настоящее время есть настройки куки для истечения точно спустя 2 недели после того, как пользователь входит в систему, и установка их к 30 минутам проста.

0
ответ дан 2 December 2019 в 06:10
поделиться

Страница параметров сессии на направляющих, Wiki подсказывает, что это только возможно через плагин:


Установите сеансовые куки, истекают время

К сожалению, направляющие не имеют никакого способа динамично установить время истечения сеансовых куки. Таким образом, рекомендуется использовать следующий плагин, который позволяет Вам выполнять его: http://blog.codahale.com/2006/04/08/dynamic-session-expiration-times-with-rails/


Конечно, примите во внимание, что плагин стар, и не может работать с Вашей текущей версией направляющих (я не посмотрел на специфические особенности),

2
ответ дан 2 December 2019 в 06:10
поделиться

Идеально, Вы хотели бы добавить что-то вроде этого к environment.rb:

session :session_expires => 1.day.from_now

Но это не будет работать, потому что код только выполняется однажды, когда APP запускается, и таким образом на следующий день все Ваши сессии создаются с истечением в прошлом.

Я обычно устанавливал session_expires к некоторому времени далеко в будущем (6 месяцев). Затем вручную набор и проверка a session[:expires] дата в a before_filter на моем контроллере приложения и сбросе сессия, когда та дата передала.

Это делает ОЧЕНЬ легким добавить опцию 'Keep me logged in for ___' при регистрировании, Вы просто устанавливаете session[:expires] = Time.now + ___

6
ответ дан 2 December 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: