Solicitar un número de teléfono

Empieza por exigir a los usuarios que incluyan un número de teléfono al registrarse. Para ello, genera una nueva migración de la base de datos:

rails generate migration add_phone_number_to_users

Editar el db/migrate/..._add_phone_number_to_users.rb para añadir una nueva columna al archivo user modelo:

class AddPhoneNumberToUsers < ActiveRecord::Migration
  def change
    add_column :users, :phone_number, :string
  end
end

Aplica el cambio ejecutando:

rake db:migrate

Devise ofrece un generador de Rails para crear una copia de las plantillas que necesitas editar. El generador se ejecuta mediante el comando rails generate:devise:views:templates.

Sin embargo, dado que la aplicación de ejemplo utiliza el módulo devise-bootstrap-templates gema, necesita utilizar una versión diferente del generador:

rails generate devise:views:bootstrap_templates

Esto copia varias plantillas de vista en app/views/devise, pero lo único que te interesa es app/views/devise/registrations/edit.html.erb, así que borra el resto.

A continuación, modifica la plantilla de edición para añadir un campo en el que el usuario pueda introducir un número de teléfono, justo después del campo del correo electrónico:

<div class="form-group">
  <%= f.label :phone_number %> <i>(Leave blank to disable two factor authentication)</i><br />
  <%= f.number_field :phone_number, class: "form-control", placeholder: "e.g. 447555555555 or 1234234234234"  %>
</div>

Por último, debe hacer que Devise conozca este parámetro adicional:

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
  before_action :authenticate_user!

  protect_from_forgery with: :exception

  before_filter :configure_permitted_parameters, if: :devise_controller?
 
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:account_update, keys: [:phone_number])
  end
end

Para añadir un número de teléfono a su Account, ejecute rails servery, a continuación, vaya a http://localhost:3000/ e inicia sesión con los datos de la cuenta con la que te registraste en el paso anterior.

Haz clic en tu dirección de correo electrónico, situada en la parte superior derecha de la pantalla, introduce tu número de teléfono y la contraseña que utilizaste para registrarte y haz clic en «Actualizar». De este modo, tu número de teléfono quedará guardado en la base de datos.

Autenticación de dos factores para garantizar la seguridad y prevenir el 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ébalo!