我有一个初始登录屏幕,我们可以输入“用户名”和“密码”。 我有四个视图,我使用在第一个登录视图中输入的“用户名”和“密码”在第四个视图中建立SSH连接。
要传递和使用用户名和密码,我将在所有这些视图中传递hidden_field_tag
,当我们点击提交按钮时,这些隐藏的字段值将传递给第二个视图。 / p>
所有这些提交都是get
次请求。
用户名和密码出现在URL中,因为我将它们作为参数传递。
如果我使用post
请求而不是get
,那么当我点击浏览器中的后退按钮时,页面就会过期。
有没有在URL中隐藏/加密这些参数?
感谢。
答案 0 :(得分:1)
我认为你不能隐藏它们,因为我们知道GET会暴露这些参数。我想知道你是否可以将它们存储在会话中?我不知道你在做什么,但逻辑看起来有点不透明。也许你可以将逻辑重新思考成更常见的模式。祝你好运!
答案 1 :(得分:0)
你真的不应该将用户名和密码作为GET请求传递。我建议改为使用另一个表单按钮返回4个步骤,这样整个过程就可以通过POST完成,无论你走向哪个方向,这也可以确保用户在前往上一页时不会丢失数据。
<%= form.submit 'Previous Step' %>
<%= form.submit 'Next Step' %>
控制器:
if params[:commit] == "Next Step"
object.update_attributes(params[:item])
<..logic..>
end
答案 2 :(得分:0)
您真的不应该将用户名和密码作为get请求传递。如果您不希望该页面作为帖子过期,我想您可以做些什么来通过AJAX帖子请求发送用户名和密码,其余的用get请求。
答案 3 :(得分:0)
点击后退按钮时页面到期有什么问题?对我来说似乎很好。您经常无法登录某些内容然后点击后退按钮返回页面 - 例如google。 使用帖子。