У меня проблема с обработкой сеанса.Я пытаюсь сделать так, чтобы учетную запись пользователя нужно было выходить каждый раз при закрытии браузера, если не установлен флажок remeber me
.Однако пользователь продолжает входить в систему, когда я закрываю и снова открываю браузер, не устанавливая флажок remember me
.Кто-нибудь поможет?
Просмотр
<%= form_tag sessions_path do %>
<div class="form-group">
<label for="email" class="text-info">Email:</label><br>
<input type="text" name="email" id="email" class="form-control">
</div>
<div class="form-group">
<label for="password" class="text-info">Password:</label><br>
<input type="password" name="password" id="password" class="form-control">
</div>
<div class="field">
<%= label_tag :remember_me %>
<%= check_box_tag :remember_me, 1, params[:remember_me] %>
</div>
<div class="form-group">
<input type="submit" name="Sign_in" class="btn btn-info btn-md" value="submit">
</div>
<% end %>
SessionsController
def create
user = User.find_by(email: params[:email])
if user && user.authenticate(params[:password])
if params[:remember_me]
cookies.permanent[:auth_token] = user.auth_token
else
cookies[:auth_token] = user.auth_token
end
log_in(user)
redirect_to user_path(user.id)
else
redirect_to new_session_path
end
end
def destroy
cookies.delete(:auth_token)
log_out
redirect_to '/'
end
Sessionshelper
def log_in(user)
session[:user_id] = user.id
end
def current_user
@current_user ||= User.find_by_auth_token( cookies[:auth_token]) if cookies[:auth_token]
end
def log_out
session.delete(:user_id)
@current_user = nil
end