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:
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:
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:
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