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