has_secure_password Авторизация пользователя - PullRequest
1 голос
/ 02 ноября 2011

Я следовал руководству Railcast # 270 has_secure_password, и все это работает.

Например, у меня в заголовке есть следующее:

<% if current_user %>
  <li><%= link_to "Profile", current_user %></li>
  <li class="last"><%= link_to "Logout", logout_path %></li>
<% else %>
 <li><%= link_to "Login", login_path %></li>
 <li class="last"><%= link_to "Register", signup_path  %></li>
<% end %>

Но если пользователь может угадать путь к конкретной странице, он может просмотреть эту страницу, если он вошел в систему или нет. Какой самый простой способ предотвратить это, и только авторизованные пользователи могут просматривать определенные страницы? У рельсов есть что-то, что поможет встроить?

1 Ответ

2 голосов
/ 02 ноября 2011

Вы можете добавить фильтр «до» к контроллеру, который будет делать именно то, что вам нужно. Как:

class ProductController < ActionController::Base
  before_filter :login_required, :only => [:new, :create, :edit, :update]

  # ...

  private

  def login_required
    unless current_user
      flash[:alert] = 'Log in!'
      redirect_to login_url, :status => 401
    end
  end
end

Это воображаемый пример с продуктами, но я думаю, вы поймете идею.

С наилучшими пожеланиями

Tobias

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...