-
-
Rails.application.config.session_store :cookie_store, key: '_cirrus_session', expire_after: 1.days, ...
-
def log_in(user) session[:user_id] = user.id ... end def log_out session.delete(:user_id) ... end
-
ExpireSessions = Rails.env.production? || Rails.env.development? MaxInactivity = 10.minutes def log_in(user) ... session[:last_action] = Time.now end def logged_in? expire_stale_session current_user.nil? ? false : reset_session_timer end private def reset_session_timer session[:last_action] = Time.now end def expire_stale_session if (session_timer > MaxInactivity) && ExpireSessions flash[:danger] = "Session timed out after #{MaxInactivity} seconds" log_out end end def session_timer session[:last_action] ? Time.now - session[:last_action].to_time : 0 end
class ApplicationController < ActionController::Base include SessionsHelper before_action :require_login private def require_login unless logged_in? flash[:error] = "You must be logged in to access this section" redirect_to login_url # halts request cycle end end end
class SessionsController < ApplicationController skip_before_action :require_login, only: [:new, :create] def new; ...; end def create; ...; end ... end
class UsersController < ApplicationController skip_before_action :require_login, only: [:new, :create] ... end
-
Created
November 11, 2018 03:44
-
-
Save dpneumo/8d7c4208c14fb3a1a75a09a2b312d9a5 to your computer and use it in GitHub Desktop.
Session setup Rails 5.2
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment