Tag: 会话

跨不同子域的rails应用程序共享会话

我正在尝试为example.com的不同子域托管的多个rails(v3.2)应用实施单点登录解决方案 一个应用程序用作身份提供程序,使用devise进行身份validation,并位于users.example.com其他应用程序依赖身份提供程序进行身份validation,使用devise + omniauth,域名为[app1.example.com,app2.example .com和example.com]。 这篇博客文章启发了我的大部分实现: http : //blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on/ 我有它工作正常,但问题仍然是会话没有共享所以在我登录身份提供商后,我仍然需要从每个其他应用程序打电话进行身份validation,我需要这个是无形的用户。 我尝试在secret_token.rb使用相同的秘密令牌,在session_store.rb使用相同的会话密钥,并且:domain =>:all(也尝试’.example.com’和’example.com’作为值)。 仍然没有运气。 执行上述操作后,我在session.inspect中看到,在登录身份提供程序后,会填充会话变量“warden.user.user.key”。 当我立即转到app1.example.com上的应用程序时,session.inspect显示相同的session_id和_csrf_token,但现在缺少“warden.user.user.key”变量。 我觉得我错过了一些愚蠢的东西……任何想法可能是什么?

使用子域在rails 2.3.2 app中丢失会话

我有一个2.2.3应用程序,我升级到2.3.2 它是一个多站点(使用子域),可为所有站点创建一个顶级会话。 这是我在production.rb中更改域的方式: ActionController::Base.session_options[:domain] = “example.com” # in rails 2.2.2, this is what i used to do: # ActionController::Base.session_options[:session_domain] = “example.com” 升级后,奇怪的事情开始发生我无法再使用restful身份validation登录了。 它确实对我进行了身份validation,但是一旦我被重定向,就会要求我再次登录。 正如我所说,我使用restful_authentication,我也使用乘客2.1.2。 有人可以帮忙吗?

在ruby中解析

我有这个Hash : cookie = {“fbs_138415639544444″=>[“\”access_token=138415639544444|5c682220fa7ebccafd97ec58-503523340|9HHx3z7GzOBPdk444wtt&expires=0 &secret=64aa8b3327eafbfd22ba070b&session_key=5c682220fa7dsfdsafas3523340 &sig=4a494b851ff43d3a58dfa8757b702dfe&uid=503523340\””], “_play_session”=>[“fdasdfasdf”]} 我需要在access_token=之前&expires之后才能获得子串。 问题是密钥fbs_138415639544444中的数字每次fbs_138415639544444改变,只是部分fbs_保持不变。 知道如何获得: “138415639544444|5c682220fa7ebccafd97ec58-503523340|9HHx3z7GzOBPdk444wtt”

在Rails 5中共享域之间的登录cookie /会话

要完全清楚,我绝对是指域之间的共享会话,而不仅仅是子域。 无论如何,想象Tumblr您可以通过转到.tumblr.com访问博客,但您也可以将其设置为使用自定义域。 我们正在尝试做类似的事情。 您可以照常访问我们网站的一部分,也可以进行设置,以便您可以使用自定义域访问您的网站部分。 这里的重要部分是无论使用什么域,它都由同一个盒子处理。 这不是SSO本身,因为我们只是从不同的域访问相同的Rails应用程序。 无论如何,问题是:最好的方法是,如果用户登录到我们的主站点,他们不必在通过自定义域访问我们的站点时再次登录。 从本质上讲,我们希望这样做,以便用户登录一次,无论用户访问我们网站的域名是什么,他们都会保持登录状态。 任何建议表示赞赏!

如何在多个模型的会话中存储数据?

在@blnc的帮助下,我们能够在他的会话中存储用户的目标。 然后,一旦他注册,将该目标保存到他的新帐户并从会话中删除它。 作为注册过程的另一个步骤,我希望用户在注册之前也能养成习惯。 goals_controller def create if current_user == nil # If there is no user, store the goal values to the session session[:goal_name] = goal_params[:name] session[:goal_deadline] = goal_params[:deadline] redirect_to signup_url else @goal = current_user.goals.build(goal_params) if @goal.save track_activity @goal redirect_to @goal, notice: ‘Goal was successfully created’ else flash.now[:danger] = ‘Required Field: “Enter Goal”‘ render ‘new’ […]

ruby on rails,session expire notification

我使用ruby 1.9.3和rails 3.2。 我的实际会话处理如下: 会话助手 def sign_in(user) cookies[:remember_token] = {value: user.remember_token, expires: 20.minutes.from_now.utc} self.current_user = user end def sign_out self.current_user = nil cookies.delete(:remember_token) end def signed_in? if current_user.nil? return false else cookies[:remember_token] = {value: current_user.remember_token, expires: 20.minutes.from_now.utc} end def current_user=(user) @current_user = user end def current_user @current_user ||= User.find_by_remember_token(cookies[:remember_token]) end 应用控制器 class ApplicationController < ActionController::Base […]

在登录到App之前和之后的rails 2.3.2 App中使用相同的会话

我们构建了一个rails 2.3.2 app并且使用rails session / cookies登录/注销机制(不使用设备gem)。 注销后,我们将使用rails reset_session重置会话,这将删除会话数据并创建新会话。 创建的会话将在浏览器中可用(cookies [_session_id]),并且在成功登录(用户名 – 密码)后,在应用程序中使用相同的会话。 题 登录前后为什么会话相同? 如何在成功登录后创建新会话? 我不想通过使用设备gem或任何其他gem来构建它。 附上截图,请检查并给我解决方案。

‘会话’来自哪里?

我正在我的rails应用程序中构建会话控制器,我只是不确定为什么有些东西在这里工作。 在create和destroy操作中, session[index]被分配给nil或用户id。 但是这个会话哈希没有在任何地方定义(据我所见)。 这为何有效? 谁能为我澄清一下这个? (为了清楚起见,没有会话模型) class SessionsController “Logged in!” else render “new” end def destroy session[:user_id] = nil redirect_to products_url, :notice => “Logged out!” end end

从模块访问会话变量或控制器变量

使用:Rails 3.0.3 我有我的网站的这个function(计算计算.com),包括大量不同的计算。 用户可以通过表单为小数(有效数字)设置自己的变量。 首先,我将此变量设置为configatron变量,结果certificate是一个坏主意(某些用户所做的更改已传递给所有用户)。 所以,我决定把它变成一个会话变量,这是有道理的,因为用户应该选择自己的十进制值。 现在,在控制器中我调用一个模块函数,该函数依次调用100个不同的模块函数。 我的问题: 我想在该模块中访问此会话变量,结果certificate这是不可能的。 已经从控制器(通过模型)传递它是一个噩梦,因为它需要为每个function传递。 所以: 如何从lib-catalog中的模块访问会话变量? 如何从模块访问控制器方法? 如果是这样,我可以调用该方法并获取会话变量。

我可以在没有用户模型或任何身份validation的情况下在Ruby on Rails中使用会话/ cookie吗?

我正在Rails中创建一个测验游戏,并希望创建一个会话来存储当前用户的数据,以便跟踪他们正确回答的问题数量。 我搜索过的所有教程都首先登录,然后生成一个会话,没有它我可以这样做吗? 编辑:其实我想知道如果没有用户模型这是否可行?