Comprobar el código de verificación

La parte final del proceso consiste en que el usuario introduzca el código que ha recibido y confirme que coincide con el enviado por la API de Verify.

En primer lugar, añade una nueva ruta:

config/routes.rb

A continuación, cree un controlador básico:

app/controllers/verifications_controller.rb

class VerificationsController < ApplicationController
  skip_before_action :verify_user!
 
  def edit
  end
 
  def update
  end
end

Obsérvese en lo anterior que es importante omitir el before_action añadimos a la ApplicationController antes para que el navegador no acabe en un bucle infinito de redirecciones.

Cree una vista para que el usuario pueda rellenar su código de verificación:

app/views/verifications/edit.html.erb

<div class="panel panel-default devise-bs">
  <div class="panel-heading">
    <h4>Verify code</h4>
  </div>
  <div class="panel-body">
    <%= form_tag verification_path(id: params[:id]), method: :put do %>
      <div class="form-group">
        <%= label_tag :code %><br />
        <%= number_field_tag :code, class: "form-control"  %>
      </div>
      <%= submit_tag 'Verify', class: "btn btn-primary" %>
    <% end %>
  </div>
</div>

<%= link_to 'Send me a new code', :root %>

A continuación, el usuario envía su código al nuevo update acción. Dentro de esta acción debe tomar las request_id y code y pasarlos al check_verification_request método:

app/controllers/verifications_controller.rb

Cuando la comprobación se realiza correctamente, el estado del usuario pasa a verificado y se le redirige a la página principal. Si la comprobación no se realiza correctamente, aparece un mensaje en el que se describe el error.

Autenticación de dos factores para la seguridad y la prevención del spam

Aprenda a implementar 2fa en sus aplicaciones Ruby

Pasos
1
Introducción
2
Crear la aplicación básica
3
Solicitar un número de teléfono
4
Enviar la solicitud de verificación
5
Comprobar el código de verificación
6
Pruébelo.