我对rails比较陌生,现在我正在开发一个简单的登录注销系统。Rails身份验证问题
在我的应用程序,当我登录生成的网址是:
本地主机:3000 /用户/指数/ 7
当我登出我回到了根。但是,如果复制此URL并将其粘贴到另一个浏览器窗口中,我将立即登录,而不会被定向到登录表单。如何纠正这个问题。
我试图存储用户ID在会话哈希,然后退出时我已经在会话中设置用户ID为零。但那不行。需要帮助。
编辑:
在我家的控制器
class HomeController < ApplicationController
def signin
user=User.find(:all,:conditions=>["user_login=? AND user_password=?",params[:user] [:username],params[:user][:password]);
if user!=nil
session[:user_id]=user.user_id;
redirect_to({:controller=>'user'})
end
end
end
在用户控制器我有一个logout方法:
def logout
session[:user_id]=nil;
redirect_to({:controller=>'home'});
end
我的routes.rb文件看起来像这样:
ActionController::Routing::Routes.draw do |map|
map.root :controller => "home",:action => "index"
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
编辑编辑:
我已经解决了这个问题,我没有检查用户控制器索引方法中的会话哈希ID值。不过,我还有一个问题,如果我有在轨2.3.17的应用程序,我想将它转移到最新版本,我会多少改变必须做出
你如何实现基本认证? – 2013-05-03 11:10:23
在我的家庭控制器中: – 2013-05-03 11:13:32
您使用的是哪个版本的Rails? – Dogbert 2013-05-03 12:05:05