Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 向设计会话添加数据_Ruby On Rails 4_Devise_Warden - Fatal编程技术网

Ruby on rails 4 向设计会话添加数据

Ruby on rails 4 向设计会话添加数据,ruby-on-rails-4,devise,warden,Ruby On Rails 4,Devise,Warden,我使用的是Rails 4,希望在Desive/Warden登录时创建的会话中添加更多数据 用户id存储在[“warden.user.user.key”]中,但我还想添加用户的电子邮件和用户名 这是相关的,但与我想做的相反:我通过将其添加到我的config/initializers/designe.rb文件中找到了它。不确定这是安全的还是正确的方法,但它是有效的 Warden::Manager.after_authentication do |user,auth,opts| auth.raw_

我使用的是Rails 4,希望在Desive/Warden登录时创建的会话中添加更多数据

用户id存储在[“warden.user.user.key”]中,但我还想添加用户的电子邮件和用户名


这是相关的,但与我想做的相反:

我通过将其添加到我的config/initializers/designe.rb文件中找到了它。不确定这是安全的还是正确的方法,但它是有效的

Warden::Manager.after_authentication do |user,auth,opts|
  auth.raw_session['warden.user.user.email'] = user.email
  auth.raw_session['warden.user.user.username'] = user.username
end

我通过将其添加到config/initializers/designe.rb文件中找到了答案。不确定这是安全的还是正确的方法,但它是有效的

Warden::Manager.after_authentication do |user,auth,opts|
  auth.raw_session['warden.user.user.email'] = user.email
  auth.raw_session['warden.user.user.username'] = user.username
end

通常,您会为此使用Warden序列化程序,正如我在我的:

然后,当您想要获取用户信息时:

env['warden'].user.email
env['warden'].user.username

这还使您能够获取更多信息,或者根据需要对对象执行操作。

通常,您会使用Warden序列化程序来实现这一点,正如我在我的:

然后,当您想要获取用户信息时:

env['warden'].user.email
env['warden'].user.username

这也使您能够获得更多信息,或者根据需要对对象进行操作。

首先感谢您的回复!不过,我不确定这是否能满足我的目的。我正在解密在一个rails应用程序(我们称之为app1)中创建的会话,它位于另一个应用程序app2的子域中。解密app1的cookies[“\u app1\u session”]后,我发现它只包含典狱长的序列化用户id信息。我按照此指南在此处解密会话:。我指的是申请会议,而不是设计会议,很抱歉造成混乱。我上面的回答有效,但它有味道吗?首先谢谢你的回答,瑞安!不过,我不确定这是否能满足我的目的。我正在解密在一个rails应用程序(我们称之为app1)中创建的会话,它位于另一个应用程序app2的子域中。解密app1的cookies[“\u app1\u session”]后,我发现它只包含典狱长的序列化用户id信息。我按照此指南在此处解密会话:。我指的是申请会议,而不是设计会议,很抱歉造成混乱。我上面的答案有效,但它有气味吗?