在我开始在线阅读之前,会话对我有意义

 不理坏女孩 发布于 2023-01-30 08:23

我从阅读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

我相信存储在服务器端的会话,它们意味着session_token每个用户都有.此外,会话散列必须在客户端.如果没有,它在哪里?请注意,我存储这样的用户的session_token: session[:session_token] = user.session_token.最后,如果我认为会话是在客户端,那么它是如何保持安全的?

最后,这是否与在其他框架(如Django,php框架等)上处理会话的方式相同?如果没有,有什么关键的区别?

非常感谢.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有