
Installer Devise sur une app rails (authentification)
Qu’est ce que Devise ? Devise est une gem (librairie ruby) disponible dans la ruby gem, qui vous permet d’ajouter l’authentification et l’enregistrement d’utilisateurs sur votre application. Il est primordiale d’avoir Devise ! En effet, Devise vous permettra d’avoir accès a de nouvelles méthodes. Nous avons alors comme nouvelles notions le current_user, if user_sign_in? etc. Application rails basique Pour créer notre application afin de faire un test sur l’authentification, je suis parti sur un template basique de rails : Pour les élèves du wagon vous avez un template prédéfini pour vous : (accessible que si vous êtes inscrit à la formation de développement web). Configurer notre application avant l’installation de devise Nous allons dans un premier temps, lancer la compilation de nos gems, lancer la création de notre base de donnée. Pour cela lancer dans le terminale : Lancer un serveur rails + webpack (pour compiler le javascript) Avant de pouvoir accéder à notre application rails (ne contenant aucun controller ni model), ne pas oublier de lancer le serveur webpack : Prenons connaissance de notre application Premièrement nous allons regarder le fichier route et aller sur le localhost afin de voir la page générée par rails. Générer un controller pages pour afficher une page Nous allons générer un controller avec une route par défaut afin d’avoir une page d’accueil personnalisée avant l’installation de DEVISE sur notre application rails. Pour cela lancer la commande : Une fois notre commande lancée, nous devons modifier le fichier route par : Nous crééons ensuite une méthode vide dans le fichier controlleur pages : Nous devons ensuite créer un fichier view : index.html.erb : En relançant notre serveur voici ce que nous devons voir : Installer devise Premièrement nous allons aller dans le gemfile, et ajouter la ligne de code suivante : Puis nous allons lancer l’installation des gems sur notre application rails. Pour cela nous connaissons la commande : Configuration automatiquement devise Pour lancer la configuration par défaut de devise, il nous suffit de lancer la commande suivante dans le terminale : Il nous suffit maintenant de suivre les 4 étapes données par devise : Vérifier que votre fichier developement.rb contient bien : (sinon l’ajouter manuellement) Ajouter la ligne de configuration pour la production : Rendez-vous dans le fichier application.html.erb et les ajouter dans le body Adapter le controller Pour commencer nous allons modifier le controller application en ajoutant cette ligne de code : Configurer les views par défaut de devise (automatiquement) Afin de générer automatiquement les views de devise, nous devons lancer la commande : Dernière étape, ajouter le model user à votre application Pour ajouter la table User afin que devise puisse fonctionner sur votre application rails, vous devez lancer la commande : Important !! Activer les turbos devise sur rails 7 Dans le fichier : config/initializers/devise.rb, ajouter le code ci-dessous : Vérifier que Devise est bien installé sur votre application Pour vérifier que la configuration de devise s’est bien déroulée, je vous invite à tester vos routes : localhost:3000/users/sign_in ainsi que la route localhost:3000/users/sign_up Pour aller plus loin (optionnel) Devise est un outil très puissant permettant également d’autoriser ou non l’accès à vos pages en étant connecté ou non. Pour n’autoriser que les utilisateurs connectés sur votre application. Vous devrez ainsi, vous rendre dans le fichier ApplicationController et ajouter cette ligne de code : Autoriser certaine page de votre application rails sans connection Il est très commun de trouver sur un site web, la page d’accueil (home page), libre d’accès sans devoir vous connecter. Pour cela il faudra ajouter une autorisation à chaque page que vous souhaitez rendre disponible à vos utilisateurs non connecté. Afin de réaliser cela, ajouter dans le controller concernée (pour notre exemple, la page d’accueil) : Comme l’indique l’image nous avons spécifier à notre controller pages, d’exclure la vérification de l’authentification d’un utilisateur via devise uniquement pour la méthode et le fichier index (soit notre page d’accueil). Vous pouvez bien sûr inclure plus de méthode et ainsi ajouter cette ligne sur les contrôleurs de votre choix. Lien du repo github concerné : https://github.com/alexisjps/demo-install-devise




