Tag: 会话

rails中会话变量的可见性

有人可以解释我在Rails中会话变量的可见性。 我的意思是会话变量可用于哪些类。 我能够访问控制器中的会话变量,但如果我创建一个独立的类,我将无法访问会话哈希。 另请告诉我在独立类中访问会话变量的最佳方法是什么。 有人能帮我理解这个会话概念吗? 任何与此相关的指针或阅读都会有所帮助。 谢谢

在Rails Devise app中Find_for_database_authentication vs Find_by?

所以,我正在尝试使用设计建立一个React前端和Rails后端,而Rails端应该是一个内部API。 这是我第一次这样做,所以我正在努力进行身份validation。 具体来说,在我的SessionsController中,我有这样的代码: def create resource = User.find_for_database_authentication(email: params[:email]) return invalid_login_attempt unless resource if resource.valid_password?(params[:password]) sign_in :user, resource return render nothing: true end invalid_login_attempt end 这总是返回401 Unauthorized。 我检查调用valid_password的结果? 它总是假的。 但是,如果我用find_for_database_authentication替换find_by ,那么valid_password? 工作没有问题。 为什么是这样? 如果现在用户只能输入他的电子邮件而不是他的密码,这没关系,但这确实让我很困惑。 它也让我觉得这不会使用任何令牌检查(不同的问题)。 另一方面,我也想知道CSRF令牌是否适用于内部API(我应该使用不同的令牌身份validation吗?),以及如果用户使用登录表单我应该如何包含CSRF令牌尚未登录,但我猜这些是另一篇文章的问题。 谢谢你的帮助。

如何检查rails中的会话大小?

我希望session.size , session.length或session.count可以工作,但它们都返回“未定义的方法”。 为什么, session不是哈希? 那是好奇心。 实际问题:有没有办法以KB格式检查会话大小? 目前我的会话存储在cookie中,它有4 KB的限制,当它超过时,它只是停止在那里放入新数据。 很高兴知道什么时候发生,重置会话或删除旧数据。

Ruby on Rails会话增加2

我正在学习务实的书架课程。 我试着做一个会话计数器。 我的商店控制器是 class StoreController 5 end end 我的观点是 .. 直到5次它不起作用。 但在它开始算作5,7,9,11之后。 。 我的会话有什么问题[:counter]?

使用Redirect_To时,Rails 3 Notices不起作用

我有一些代码我有一个:通知,它只是有选择地出现。 这是代码 respond_to do |format| if @userhj.save format.html { redirect_to(:action => :index, :notice => ‘Succesfully assigned job’) } format.xml { render :xml => @userhj, :status => :created, :location => @userhj } else format.html { redirect_to(:root, :notice => ‘Duplicate job assignment’) } format.xml { render :xml => @user.errors, :status => :unprocessable_entity } end end 从:index视图重定向到:index时,通知不会正确显示。 看看Firebug的网络控制台,有一个GET(这里插入url)?notice […]

使用link_to Rails设置会话变量

是否可以使用link_to设置会话变量? 我不想设置参数,因为我有一些重定向并且它被擦掉了。 即我想用链接将会话变量“modelid”设置为“你”。 我想在FB登录oauth运行时设置会话变量… “btn btn-primary btn-large inline pull-left”, :onclick => “FB.login(function(response){},{perms:’email, publish_stream, user_photos’});” } %>

Rails重定向到登录前想要查看的页面用户

我正在尝试将用户重定向回他们在登录之前尝试访问的页面(该页面仅供用户查看)。 我将从一个针对我的旅行新动作的前filter开始: before_filter :authenticate, :only => [:new, :create, :edit, :update, :destroy] def authenticate deny_access unless signed_in? end def deny_access store_location redirect_to login_path, :notice => “Please log in to access this page.” end def store_location session[:return_to] = request.fullpath end 这是我的sessions_controller.rb中的new和create操作 def new @title = “Log in” end def create user = User.authenticate(params[:session][:email].downcase, params[:session][:password]) if user.nil? flash.now[:error] […]

基于Cookie的会话的安全性

我需要澄清基于cookie的会话是如何工作的。 我正在构建一个我对用户进行身份validation的应用程序,并且在成功进行身份validation后,我会将一个GUID标记为他的用户进入会话,然后将其作为cookie保留。 现在,当用户登录时,是为了防止有人嗅探流量,窃取用户cookie的内容并在自己的端创建cookie并以该人身份登录我的网站? 另一种情况可能是,如果我可以物理访问该人登录的计算机,我还可以窃取cookie的内容并以用户身份进行模拟。

Rails cookie对象,Cookie HTTP标头和document.cookie之间的关系

当我在Javascript中访问document.cookie时,它吐出来,说: ‘user_credentials=5beea8874f2db9feb873828’ 基本上,似乎是一些编码信息。 精细。 当我查看标题时,我确实看到完全相同的字符串被设置为user_credentials ,但是还为_myapplication_session=BAh7CiIQX设置了另一个值。 与user_credentials不同,这个包含大写字母和F后面的字母。 所以: 什么是_myapplication_session ? 这与Rails中的会话对象有关吗? 为什么_myapplication_session没有出现在Javascript document.cookie ?

Rails和Authlogic:每个用户只允许一个会话?

有没有办法限制Ruby on Rails应用程序中的会话数量(我使用Authlogic进行身份validation)? 我想每个用户帐户只允许1个会话。 当同一用户登录另一台计算机时,上一个会话应该过期/无效。 我正在考虑将会话数据存储在数据库中,然后在创建新会话实例时将其删除但可能有更简单的方法吗? (配置选项)