我已经按照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 %>
但是,如果用户可以猜到特定页面的路径,那么他们可以查看该页面是否已登录。什么是最简单的方法来防止这种情况,只有授权用户才能查看某些页面? rails有内置的帮助吗?
答案 0 :(得分:2)
您可以在控制器中添加一个前置过滤器,它可以完全满足您的需要。像:
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
这是一个包含产品的虚构示例,但我认为您会明白这一点。
祝你好运
托拜厄斯