我正在尝试使用会话机制来存储记录的用户信息,如下所示: session [:user_id] = @ user_id ,确定无误。
但是当新用户在应用中登录时,变量会话[:user_id] 会更新为新的用户ID,使第一个用户ID执行无效的请求。
我使用了不同的浏览器,私有浏览器,虚拟机中的浏览器和主机中的另一个浏览器,但仍然遇到了问题。
我很感激一些建议。多个用户之间共享会话是否正常?还有另一种存储某些特定数据的方法,并阻止用户之间的共享?我认为这个会话是独一无二的,为什么变量会发生变化?对于cookies变量也是如此。
修改
application_controller
def sign_in
if(password != "" && @user_id!= "" && jenkinsip != "")
@client = JenkinsApi::Client.new(:server_url => jenkinsip, :username=> @user_id, :password=> password)
if(@client.get_jenkins_version != nil)
session[:user_id]=@user_id
end
end
end
in html
答案 0 :(得分:3)
每次调用session[:user_id]=@user_id
时,会话[:user_id]都被设置为@user_id变量设置为的任何值。
尝试使用||=
代替=
将会话设置为session[:user_id]||= @user_id
,仅在会话[:user_id]未定义时将会话[:user_id]设置为@user_id。
答案 1 :(得分:1)
按照 koxtra 的优秀答案和
还可以在[(UILabel *)[self performSelector:NSSelectorFromString(@"bottomText")] setText:@"Test"];
gem上查看用户身份验证。
设计会像用户登录,注册,创建会话和更多功能一样为您做所有事情。您只需要安装Devise 在您的rails应用程序中。