app/controllers/users/omniauth_callbacks_controller.rb
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
# https://github.com/zquestz/omniauth-google-oauth2
def google_oauth2
@user = User.from_omniauth(request.env['omniauth.auth'], Rails.application.secrets.authenticatable_hosted_domains.split)
if @user&.persisted?
flash[:notice] = I18n.t 'devise.omniauth_callbacks.success', kind: 'Google'
sign_in_and_redirect @user, event: :authentication
else
session['devise.google_data'] = request.env['omniauth.auth'].except(:extra) # Removing extra as it can overflow some session stores
redirect_to new_user_session_path, alert: 'Authentication failed. Are you using your oregonstate.edu account?'
end
end
end