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.
Vad är "Devise" Gem?
- Devise är en kraftfull och flexibel autentiseringslösning för Rails.
- Det är helt baserat på MVC-struktur.
- Det gör det möjligt att ha flera modeller inloggade samtidigt.
Olika moduler av Devise
Devise består av 10 viktiga moduler.
- Databasautentiseringsbar: Den krypterar och lagrar lösenord i databasen så att valideringen kan göras för en användares äkthet vid tidpunkten för inloggningen. Autentiseringen kan göras både genom POST-förfrågningar eller HTTP Basic Authentication.
- Omniauthable: Lägg till OmniAuth support dvs möjligt att sätta upp en inloggning med OmniAuth.
- Kan bekräftas: Skickar e-postmeddelanden med bekräftelseinstruktioner och verifierar om ett konto redan har bekräftats vid inloggning.
- Återställningsbar: Återställer användarlösenordet och skickar återställningsinstruktioner.
- Registrerbar: Hanterar registreringsprocessen genom att registrera användare, vilket också tillåter dem att redigera och förstöra sitt konto.
- Minnesbar: Som namnet antyder hjälper den till att hantera, generera och rensa en token för att komma ihåg användaren genom sparade cookies.
- Spårbar: Spårar antalet inloggningar, tidsstämplar och IP-adress.
- Timeoutbar: Förfaller sessioner som inte har varit aktiva under en viss tidsperiod.
- Validerbar: Ger valideringar av e-post och lösenord. Det är valfritt och kan anpassas, så att du kan definiera dina egna valideringar.
- Låsbar: Det hjälper till att låsa ett konto efter ett visst antal misslyckade inloggningsförsök. Kontot kan låsas upp via e-post eller efter en viss tidsperiod.
Installera Devise, Skapa modell, Visa och konfigurera
- Skapa din rails-app
- Lägg till "devise" till din Gemfile.
- Kör paketinstallation på din kommandorad.
- Kör rails generera devise:install på din kommandorad.
- Execute rails generate devise <Model Name> in your command line to create model
rails generate devise User
class User < ApplicationRecord # Include default Devise modules. # Other available modules are: # :confirmable, :lockable, :timeoutable, and :omniauthable
devise :database_authenticatable,
:registerable,
:recoverable,
:rememberable,
:trackable,
:validatable
slutet
- Om du vill kan du ändra din migreringsfil för användare. Kör sedan rake db:migrate
- Kör rails generera devise:views på din kommandorad för att skapa vyer
- du måste ställa in standard-URL-alternativen för Devise-mailern i varje miljö. Ex-konfiguration för config/environments/development.rb: config.action_mailer.default_url_options = { värd: 'localhost', port: 3000 }
Du kan anpassa modeller, kontroller och vyer enligt krav. Vänligen följ github-dokumenten för mer information.
Vissa kontrollfilter och hjälpare
- För att ställa in en styrenhet med användarverifiering före_åtgärd :authenticate_user!
- För att verifiera om en användare är inloggad eller inte => user_signed_in?
- För den nuvarande inloggade användaren => aktuell_användare
- åtkomst till sessionen för detta omfång: => user_session
- Du kan också åsidosätta after_sign_in_path_for och after_sign_out_path_for för att anpassa dina omdirigeringsvägar.
Du kan integrera "activeadmin" pärla, "devise_invitable" pärla med devises.
När det gäller tidsbesparing är det inget som slår Ruby on Rails. Om du har en idé och vill få den implementerad är det bästa alternativet för dig att välja Ruby on Rails. RailsCarma har implementerat Ruby on Rails från dess begynnande stadier för utveckling, utbildning, distribution och bidrag tillbaka till Rails Community och tillhandahåller de bästa Ruby on Rails-utvecklingstjänsterna. RailsCarma tillhandahåller Ruby on Rails-tjänster, inklusive konsulttjänster, arkitektur, byggnad, förvaltning och utbyggnad, till företag över hela världen. Du kan också anlita Ruby on Rails-utvecklare med en lättanställd process. Kontakta oss att veta mer.