Unlocking the ‘Devise’ Gem in Rails 8

If we have to don our wizarding hat and take out our crystal balls, we would still be harping that Ruby on Rails is going to be hot in 2026 too! 2026 is also going to bring in only 24 hours a day (how we wish, we could stretch the time) and time would still spell money for businesspeople. When time is money, anything which can save time is gold! And that’s where Ruby on Rails come in picture. What could take other programming languages months to complete, takes only weeks, sometimes just days for Ruby on Rails. Shaping ideas into applications was never so easy. With Ruby on Rails, agility is the norm and convention over configuration the benchmark. And what make Ruby on Rails more powerful are the bunch of pre-packaged, categorized, reusable codes, named as gems. With gems, Rails is a super power to behold. One of the most popular gems is called as Devise Gems, which is a complete authentication package. Read on to know more about Devise gem.

Introducing Devise for Ruby on Rails 8

Devise is a widely used authentication library for Ruby on Rails 8 applications, built on top of Warden, a Rack-based authentication framework.

Warden manages user sessions by securely validating the identity of authenticated users. It also ensures that unauthenticated users are restricted from accessing protected routes and resources within a Rails application.

Since Warden operates strictly at the Rack level, it does not provide Rails-specific features such as controllers, views, helpers, or configuration generators required for a complete authentication system. Devise bridges this gap by adding these Rails integrations, making it easier to implement a robust and production-ready authentication solution in Rails 8.

A major advantage of Devise is its modular architecture. It includes around ten authentication modules that allow you to customize how authentication behaves in your application. You can enable only the modules you need—such as Registerable, Omniauthable, Trackable, and others—keeping your authentication setup clean and flexible.

 

With this understanding, we can now begin building our Tasks application and set up Devise in a Rails 8 environment.

Cos'è la gemma "Devise"?

  1. Devise è una soluzione di autenticazione potente e flessibile per Rails.
  2. È completamente basato sulla struttura MVC.
  3. Permette di avere più modelli registrati contemporaneamente.

Diversi moduli di ideazione

Devise è composto da 10 importanti moduli.

  1. Database autenticabile: crittografa e memorizza le password nel database in modo che possa essere eseguita la convalida dell'autenticità di un utente al momento dell'accesso. L'autenticazione può essere eseguita sia tramite richieste POST che tramite autenticazione HTTP di base.
  2. Omniauthable: aggiungi OmniAuth supporto, ovvero è possibile impostare un accesso con OmniAuth.
  3. Confermabile: invia e-mail con istruzioni di conferma e verifica se un account è già confermato durante l'accesso.
  4. Recuperabile: reimposta la password dell'utente e invia istruzioni di reimpostazione.
  5. Registrabile: gestisce il processo di registrazione registrando gli utenti consentendo loro anche di modificare e distruggere il proprio account.
  6. Ricordabile: come suggerisce il nome, aiuta a gestire, generare e cancellare un token per ricordare l'utente attraverso i cookie salvati.
  7. Tracciabile: tiene traccia del conteggio degli accessi, dei timestamp e dell'indirizzo IP.
  8. Timeout: fa scadere le sessioni che non sono state attive in un periodo di tempo specificato.
  9. Validabile: fornisce convalide di e-mail e password. È facoltativo e può essere personalizzato, quindi puoi definire le tue convalide.
  10. Bloccabile: aiuta a bloccare un account dopo un numero specifico di tentativi di accesso non riusciti. L'account potrebbe essere sbloccato tramite e-mail o dopo un periodo di tempo specifico.

Installa Idea, crea modello, visualizza e configura

  1. Crea la tua app per i binari
  2. Aggiungi la gemma 'devise' al tuo Gemfile.
  3. Esegui l'installazione del bundle nella riga di comando.
  4. Esegui rails generate devise:install nella riga di comando.
  5. Execute rails generate devise <Model Name> in your command line to create model
Run the following command:
 
rails generate devise User
After running this command, a user.rb model will be generated in the app/models directory.
 
class User < ApplicationRecord
  # Include default Devise modules.
  # Other available modules are:
  # :confirmable, :lockable, :timeoutable, and :omniauthable
  devise :database_authenticatable,
         :registerable,
         :recoverable,
         :rememberable,
         :trackable,
         :validatable
FINE
  1. Se lo desideri, puoi modificare il file di migrazione per utente. Quindi esegui rake db:migrate
  2. Esegui rail generate devise:views nella riga di comando per creare visualizzazioni
  3. è necessario impostare le opzioni URL predefinite per il mailer Devise in ciascun ambiente. Ex-configurazione per config/environments/development.rb: config.action_mailer.default_url_options = { host: 'localhost', porta: 3000 }

È possibile personalizzare modelli, controller e visualizzazioni secondo i requisiti. Si prega di seguire i documenti github per maggiori dettagli.

Alcuni filtri e helper del controller

  • Per configurare un controller con l'autenticazione dell'utente before_action :authenticate_user!
  • Per verificare se un utente ha effettuato l'accesso o meno => user_signed_in?
  • Per l'utente correntemente connesso => current_user
  • accedere alla sessione per questo ambito: => user_session
  • Puoi anche sovrascrivere after_sign_in_path_for e after_sign_out_path_for per personalizzare i percorsi di reindirizzamento.

Puoi integrare la gemma 'activeadmin', la gemma 'devise_invitable' con devises.

Quando si tratta di risparmiare tempo, niente batte Ruby on Rails. Se hai un'idea e desideri realizzarla, la soluzione migliore per te sarebbe Ruby on Rails. RailsCarma ha implementato Ruby on Rails sin dalle sue fasi nascenti per lo sviluppo, la formazione, l'implementazione e il contributo alla comunità Rails e fornisce i migliori servizi di sviluppo Ruby on Rails. RailsCarma fornisce servizi Ruby on Rails end-to-end tra cui consulenza, architettura, costruzione, gestione ed estensione ad aziende di tutto il mondo. Puoi anche assumere sviluppatori Ruby on Rails con un processo di assunzione facile. Contattaci per saperne di più.

Leggi ulteriori informazioni sulle gemme:

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Informazioni sull'autore del post

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


it_ITItalian