【问题标题】:password_field_tag submits FILTERED valuepassword_field_tag 提交过滤值
【发布时间】:2016-09-18 13:38:04
【问题描述】:

我是 Rails 新手,我正在制作一个简单的登录页面。

这是我的观点

<%= form_tag(:action => 'signup') do %>
    <div class="row">
      <!-- first name -->
      <div class="col-md-6">
        <div class="form-group">
          <%= label_tag('instructor_firstname', 'First Name:') %>
          <%= text_field_tag 'instructor[firstname]', nil, class: 'form-control', required: true %>
        </div>
      </div>
      <!-- first name -->
      <!-- last name -->
      <div class="col-md-6">
        <div class="form-group">
          <%= label_tag('instructor_lastname', 'Last Name:') %>
          <%= text_field_tag 'instructor[lastname]', nil, class: 'form-control', required: true %>
        </div>
      </div>
      <!-- last name -->
    </div>

    <!-- User ID -->
    <div class="row">
      <div class="col-md-12">
        <div class="form-group">
          <%= label_tag('instructor_id', 'Instructor ID:') %>
          <%= text_field_tag 'instructor[id]', nil, class: 'form-control', required: true %>
        </div>
      </div>
    </div>
    <!-- User ID -->

    <!-- password-->
    <div class="row">
      <div class="col-md-12">
        <div class="form-group">
          <%= label_tag('password', 'Password:') %>
          <%= password_field_tag 'password', nil, class: 'form-control', required: true %>
        </div>
      </div>
    </div>
    <!-- password-->

    <!-- confirm password-->
    <div class="row">
      <div class="col-md-12">
        <div class="form-group">
          <%= label_tag('confirmpassword', 'Confirm Password') %>
          <%= password_field_tag 'confirmpassword', nil, class: 'form-control', required: true %>
        </div>
      </div>
    </div>
    <!-- confirm password-->

    <!-- error message -->
    <% if !flash[:error].blank? %>
      <div class="row">
        <div class="col-md-12">
          <p><i><small><%= flash[:error] %></small></i></p>
        </div>
      </div>
    <% end %>
    <!-- error message -->

    <!-- Signup button -->
    <div class="row">
      <div class="text-center">
        <%= submit_tag 'Sign up', class: 'btn btn-default' %>
      </div>
    </div>
    <!-- Signup button -->
<% end %>

但是当我检查提交的参数时,结果是

"instructor"=>{"firstname"=>"Gerald", "lastname"=>"Campana", "id"=>"2112"}, "password"=>"[FILTERED]", "confirmpassword"=>"[FILTERED]", "commit"=>"Sign up"}

我无法比较这两个密码,即使我尝试使用 puts params[:instructor][:password] 将其显示到控制台,它什么也不显示

【问题讨论】:

    标签: ruby-on-rails web-development-server


    【解决方案1】:

    将您的代码更改为:

    password_field_tag 'instructor[password]', nil, class: 'form-control', required: true 
    password_field_tag 'instructor[confirmpassword]', nil, class: 'form-control', required: true
    

    【讨论】:

      【解决方案2】:

      我强烈建议您不要开发自己的身份验证系统,而是为此使用一个简单但非常高级的 gem - 设备

      https://github.com/plataformatec/devise

      它将为您省去很多麻烦,允许您使用许多与身份验证相关的功能,并确保您的代码中没有任何漏洞。

      【讨论】:

        猜你喜欢
        • 2020-07-02
        • 2022-07-06
        • 1970-01-01
        • 2018-10-02
        • 1970-01-01
        • 2020-10-27
        • 2020-03-29
        • 1970-01-01
        • 2022-01-24
        相关资源
        最近更新 更多