This provides warning message before auto session timeout in Rails application, if you don't looking for warning message before session timeout please find the auto session timeout gem here
https://github.com/pelargir/auto-session-timeout
Add this line to your application's Gemfile:
gem 'auto-session-timeout-warning'
And then execute:
$ bundle
Or install it yourself as:
$ gem install auto-session-timeout-warning
Add jquery and jquery-ui on your application.js file, set the current_user helper method in application controller if its not yet defined
setup your application controller to use auto timeout warning. Here I setup the session timeout warning to 20 minutes of inactivity.
class ApplicationController < ActionController::Base
auto_session_timeout 20.minutes
end
Add before_timedout_action in application controller
class ApplicationController < ActionController::Base
before_timedout_action
end
If you want to override the before_timedout, just add protected before_timedout action and add your custom implementation here
class ApplicationController < ActionController::Base
before_timedout_action
protected
#override before_timedout
def before_timedout
#your custom code here
end
end
Add warning tag and auto session_timeout javascript config in views like application layout or any other page
<body>
<% if current_user %>
<%= auto_session_warning_tag %>
<%= auto_session_timeout_js timeout: 60, frequency: 60, start: 60, warning: 20 %>
<% end %>
...
</body>
frequency: how frequently browser interactive with server to find the session details,
timeout: auto session time out in seconds. If you set auto_session_timeout: 2.minutes on application_controller, you should set 120 seconds here.
start: starting time of server interaction. If it is 60, first server interaction will start after 60 seconds,
warning: Show warning message before session timed out. If it is 20, dialog warning message will popup before 20 seconds of timeout.
Default values here: timeout: 60, frequecy: 60, start: 60, warning: 20
- setting timeout in controller vs. user
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
- Source Repository: http://github.com/pelargir/auto-session-timeout/