Back to list

Devise - Authentication Configuration

Lv.5934@mukitaro12 playsDec 31, 2025

Devise authentication setup with OmniAuth integration and custom parameter sanitization.

preview.ruby
Ruby
1class User < ApplicationRecord
2 devise :database_authenticatable, :registerable,
3 :recoverable, :rememberable, :validatable,
4 :confirmable, :lockable, :trackable,
5 :omniauthable, omniauth_providers: [:google, :github]
6
7 def self.from_omniauth(auth)
8 where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
9 user.email = auth.info.email
10 user.password = Devise.friendly_token[0, 20]
11 user.name = auth.info.name
12 user.avatar_url = auth.info.image
13 user.skip_confirmation!
14 end
15 end
16end
17
18class ApplicationController < ActionController::Base
19 before_action :authenticate_user!
20 before_action :configure_permitted_parameters, if: :devise_controller?
21
22 protected
23
24 def configure_permitted_parameters
25 devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :username])
26 devise_parameter_sanitizer.permit(:account_update, keys: [:name, :avatar])
27 end
28end

Custom problems are not included in rankings