osu-cascades/ecotone-web

View on GitHub
app/controllers/users/omniauth_callbacks_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
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