从控制台调用Rails控制器(传递凭据和/或会话ID)

时间:2011-08-16 19:42:33

标签: ruby-on-rails security

  
    

app.get'/ namespace / controller'

  

有效,但我怎么能:

  1. 将凭据传递给安全控制器。
  2. 为先前经过身份验证的用户传递SESSIONID。

1 个答案:

答案 0 :(得分:4)

app对象会为您处理会话,因此您无需担心手动处理会话ID。因此,您只需登录,然后访问依赖于正在设置的会话的其他页面:

app.post app.login_path, :username => "username", :password => "password"
app.get app.other_path

您还可以在任何请求后检查响应和会话,例如:

app.response.redirect_url
app.session[:user_id]       # assumes your login process uses the `user_id` key in your session

如果需要,可以在.irbrc目录中创建一个名为$HOME的文件,将其中的一些想法与其中的内容结合起来:

if Rails
  def login
    app.post app.login_path, :username => "username", :password => "password"
    "Logged in with user_id: #{app.session[:user_id]}"
  end
end

然后,在您的Rails控制台中,您只需键入login即可发出该方法,它将返回显示user_id会话元素值的字符串。