0

我有一个初始登录屏幕,我们可以在其中输入“用户名”和“密码”。我有四个视图,我使用在第一个登录视图中输入的“用户名”和“密码”在第四个视图中建立 SSH 连接。

为了传递和使用用户名和密码,我hidden_field_tag在所有这些视图中通过 a 传递它们,当我们单击提交按钮时,这些隐藏字段值被传递到第二个视图。

所有这些提交都是get请求。

用户名和密码出现在 URL 中,因为我将它们作为参数传递。如果我使用postrequest 而不是 a get,当我单击浏览器中的后退按钮时,页面就会过期。

无论如何要在 URL 中隐藏/加密这些参数吗?

谢谢。

4

4 回答 4

1

我认为您无法隐藏它们,因为我们知道 GET 会暴露参数。我想知道您是否可以将它们存储在会话中?我不知道你在做什么,但逻辑似乎有点不透明。也许您可以将逻辑重新考虑为更常见的模式。祝你好运!

于 2012-07-06T16:16:01.920 回答
0

当您点击返回按钮时页面过期有什么问题?对我来说似乎很好。您通常无法登录某些内容,然后点击后退按钮返回页面 - 例如谷歌。 使用帖子。

于 2012-07-06T17:03:37.920 回答
0

您真的不应该将用户名和密码作为 GET 请求传递。我建议使用另一个表单按钮返回 4 步过程,以便整个过程通过 POST 完成,无论您前进的方向是什么,这也可以确保用户在转到前一页时不会丢失数据。

<%= form.submit 'Previous Step' %>
<%= form.submit 'Next Step' %>

控制器:

if params[:commit] == "Next Step" 
  object.update_attributes(params[:item])
  <..logic..>
end
于 2012-07-06T16:15:39.413 回答
0

您真的不应该将用户名和密码作为获取请求传递。如果您不希望页面作为帖子过期,我想您可以做些什么来通过 AJAX 发布请求发送用户名和密码,其余的通过获取请求发送。

于 2012-07-06T16:18:51.180 回答