Login request processing is a process to hide a specific page from users who are not logged in. This article is an easy solution to how to implement login request processing.
Prepare a helper in
$ rails g helper sessions and implement
module SessionsHelper def current_user @current_user ||= User.find_by(id: session[:user_id]) end def logged_in? !!current_user end end
def current_user is a method to get the currently logged in user.
@current_user ||= User.find_by(id: session[:user_id])Is
If the current login user is assigned to
@ current_user → Do nothing.
If the current login user is not assigned to
@ current_user → Get the login user from
User.find_by (...)and assign it to
def logged_in? Returns true if the user is logged in, false if the user is not logged in.
Let's think about the controller.
class ApplicationController < ActionController::Base include SessionsHelper private def require_user_logged_in unless logged_in? redirect_to login_url end end end
The method written in
ApplicationController can be used in all Controllers.
require_user_logged_in method checks the login status, does nothing if you are logged in, and forces you back to the login page if you are not logged in.
The reason I wrote
include SessionsHelper is to be able to use the
logged_in?Method defined in Helper.
Now let's use the
require_user_logged_in method in
class UsersController < ApplicationController before_action :require_user_logged_in, only: [:index, :show] #Omitted below
For the index and show specified in before_action, the
require_user_logged_in method is executed as preprocessing.
For example, when a person accesses users # index, if that person logs in, they can see users # index. However, if you are not logged in, you will be taken to the login page. In this way, you can create membership-based services. that's all.