DEV Community

Cover image for Rails 8: Introducing the Built-in Authentication Generator
JetThoughts Dev for JetThoughts

Posted on • Originally published at jetthoughts.com

Rails 8: Introducing the Built-in Authentication Generator

Rails 8 Authentication Guide for Ruby Developers

Ruby on Rails developers face a common task: building user login systems. Rails 8 brings a built-in solution. This guide helps Rails developers create authentication without extra gems.

What Ruby Developers Will Build

As a Rails developer, you'll create:

  • A secure authentication system
  • Public and private pages
  • A test suite for user flows
  • Database migrations for users

Set Up Your Rails Environment

Ruby on Rails developers start here:

rails new auth-example
cd auth-example
Enter fullscreen mode Exit fullscreen mode

This creates a fresh Rails application.

Rails 8 Authentication Generator

Rails developers love simple solutions. Run:

bin/rails generate authentication
Enter fullscreen mode Exit fullscreen mode

The generator creates Rails files:

  • ERB view templates
  • Rails controllers
  • Ruby models
  • RSpec test files

Database Setup for Rails

Rails developers need a working database:

bin/rails db:create db:migrate
Enter fullscreen mode Exit fullscreen mode

Create a test user in Rails console:

rails c
Enter fullscreen mode Exit fullscreen mode

Add user data:

User.create(email_address: "you@example.com", password: "test-password-123")
Enter fullscreen mode Exit fullscreen mode

Rails Controllers

Rails developers work with two types of access:

  • Public pages for visitors
  • Private pages for users

Generate Rails controllers:

rails g controller home index
rails g controller dashboard show
Enter fullscreen mode Exit fullscreen mode

Ruby on Rails Routes

Rails routing connects URLs to Ruby code. Update config/routes.rb:

Rails.application.routes.draw do
  get "home/index", as: :home
  get "dashboard/show", as: :dashboard
  root "home#index"
end
Enter fullscreen mode Exit fullscreen mode

Public Controller in Rails

Ruby developers handle public access:

class HomeController < ApplicationController
  allow_unauthenticated_access(only: :index)
  def index
  end
end
Enter fullscreen mode Exit fullscreen mode

Authenticated Controller

Rails developers protect private pages:

class DashboardController < ApplicationController
  before_action :resume_session, only: [:show]
  def show
  end
end
Enter fullscreen mode Exit fullscreen mode

Test Your Rails App

Start your Rails server:

rails s
Enter fullscreen mode Exit fullscreen mode

Test these Rails routes:

  1. /home - Public access
  2. /dashboard - Login required

Rails Security Tips

Ruby developers follow these practices:

  • Use secure passwords
  • Keep Rails updated
  • Monitor logs
  • Back up data

Rails Authentication Code

View the Ruby code: Rails Authentication Source

Tasks for Rails Developers

Try these Ruby tasks:

  1. Build a signup flow
  2. Create a password reset
  3. Add session persistence
  4. Style your ERB templates

Next Steps for Rails Developers

You can extend this:

  • Add OAuth support
  • Create admin roles
  • Add API authentication
  • Build user profiles

Remember: Now, the Rails developer starts with basic authentication. Build more. Learn more.

Need Ruby on Rails help? Drop questions below.

Top comments (0)