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

kri*_*h p 4 security ruby-on-rails

app.get '/命名空间/控制器'

有效,但我怎样才能:

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

sma*_*thy 5

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

app.post app.login_path, :username => "username", :password => "password"
app.get app.other_path
Run Code Online (Sandbox Code Playgroud)

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

app.response.redirect_url
app.session[:user_id]       # assumes your login process uses the `user_id` key in your session
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以.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
Run Code Online (Sandbox Code Playgroud)

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