Exiger un numéro de téléphone
Commencez par exiger que les utilisateurs indiquent un numéro de téléphone lors de leur inscription. Pour ce faire, générez une nouvelle migration de base de données :
Modifier le db/migrate/..._add_phone_number_to_users.rb pour ajouter une nouvelle colonne au fichier user modèle :
Appliquer la modification en exécutant :
Devise fournit un générateur Rails pour créer une copie des modèles que vous devez éditer. Vous lancez le générateur à l'aide de la commande rails generate:devise:views:templates.
Toutefois, étant donné que l'exemple d'application utilise l'option devise-bootstrap-templates vous devez utiliser une version différente du générateur :
Cette opération permet de copier plusieurs modèles de vue dans app/views/devisemais vous n'êtes intéressé que par app/views/devise/registrations/edit.html.erbIl faut donc supprimer le reste.
Modifiez ensuite le modèle d'édition pour ajouter un champ permettant à l'utilisateur de saisir un numéro de téléphone, directement après le champ de l'adresse électronique :
<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>
Enfin, vous devez informer Devise de l'existence de ce paramètre supplémentaire :
app/controllers/application_controller.rb
Pour ajouter un numéro de téléphone à votre Account, exécutez rails server, puis naviguez jusqu'à http://localhost:3000/ et connectez-vous en utilisant les détails du compte que vous avez enregistré à l'étape précédente.
Cliquez sur votre adresse électronique en haut à droite de l'écran, saisissez votre numéro de téléphone et le mot de passe que vous avez utilisé pour vous inscrire, puis cliquez sur Mettre à jour. Votre numéro de téléphone sera alors enregistré dans la base de données.
Authentification à deux facteurs pour la sécurité et la prévention du spam
Apprenez à mettre en œuvre 2fa dans vos Applications Ruby