Dav*_*vid 5 authentication cookies session ruby-on-rails ruby-on-rails-3.2
我从阅读Sessions vs Cookies中收集到的主要内容是,Cookie存储在客户端,而会话存储在服务器端.如果会话存储在服务器端,那么服务器如何知道哪个客户端是他们的?显然,必须在客户端进行某些操作.
每当我使用自动滚动用户身份验证时,session_token
我的users
数据库表中都有一列.
然后,这个模块倾向于为我提供便利:
module SessionsHelper
def current_user
User.find_by_session_token(session[:session_token])
end
def current_user=(user)
@current_user = user
session[:session_token] = user.session_token
end
def logout_current_user!
current_user.reset_session_token!
session[:session_token] = nil
end
def require_current_user!
redirect_to new_session_url if current_user.nil?
end
def require_no_current_user!
redirect_to user_url(current_user) unless current_user.nil?
end
end
Run Code Online (Sandbox Code Playgroud)
我相信存储在服务器端的会话,它们意味着session_token
每个用户都有.此外,会话散列必须在客户端.如果没有,它在哪里?请注意,我存储这样的用户的session_token: session[:session_token] = user.session_token
.最后,如果我认为会话是在客户端,那么它是如何保持安全的?
最后,这是否与在其他框架(如Django,php框架等)上处理会话的方式相同?如果没有,有什么关键的区别?
非常感谢.
归档时间: |
|
查看次数: |
3757 次 |
最近记录: |