读书人

友善的登录系统

发布时间: 2012-12-23 11:28:15 作者: rapoo

友好的登录系统
友好的登录系统
按照目前的代码,如果管理员尝试在未登录的状态下访问受限的页面,他就会被引到登录页面上;
在完成登录之后,接着出现的是统一的状态页面——用户最初的请求已经被遗忘了。如果你愿意的话,
也可以对应用程序稍作修改,在用户登录之后将其引到最初请求的页面。
首先,如果 authorize()方法需要让用户去登录的话,应该同时将当前请求的 URI 记在 session
中。

def authorizeunless User.find_by_id(session[:user_id])→session[:original_uri] = request.request_uriflash[:notice] = "Please log in"redirect_to(:controller => "login" , :action => "login" )endend一旦用户登录成功,我们就可以检查 session 中是否保存了一个请求 URI:如果有的话,就将用户请求重定向到他原本请求的地址。def loginsession[:user_id] = nilif request.post?user = User.authenticate(params[:name], params[:password])if usersession[:user_id] = user.id→uri = session[:original_uri]→session[:original_uri] = nil→redirect_to(uri || { :action => "index" })elseflash.now[:notice] = "Invalid user/password combination"endendend

读书人网 >编程

热点推荐