class RooOnRails::Railties::GoogleOAuth
Private Instance Methods
_add_middleware(app)
click to toggle source
# File lib/roo_on_rails/railties/google_oauth.rb, line 15 def _add_middleware(app) require 'omniauth' require 'omniauth-google-oauth2' require 'active_support/core_ext/object/blank' options = { path_prefix: Config.google_auth_path_prefix, prompt: 'consent', # https://stackoverflow.com/questions/45271730/jwtinvalidissuererror-invalid-issuer-expected-accounts-google-com-received # https://github.com/zquestz/omniauth-google-oauth2/issues/197 skip_jwt: true, } domain_list = ENV.fetch('GOOGLE_AUTH_ALLOWED_DOMAINS', '').split(',').reject(&:blank?) options[:hd] = domain_list if domain_list.any? app.config.middleware.use ::OmniAuth::Builder do provider :google_oauth2, ENV.fetch('GOOGLE_AUTH_CLIENT_ID'), ENV.fetch('GOOGLE_AUTH_CLIENT_SECRET'), options end end
_add_routes(app)
click to toggle source
# File lib/roo_on_rails/railties/google_oauth.rb, line 39 def _add_routes(app) prefix = Config.google_auth_path_prefix ctrl = Config.google_auth_controller app.routes.prepend do get "#{prefix}/google_oauth2", controller: ctrl, action: 'failure' get "#{prefix}/google_oauth2/callback", controller: ctrl, action: 'create' post "#{prefix}/google_oauth2/callback", controller: ctrl, action: 'create' get "#{prefix}/failure", controller: ctrl, action: 'failure' get "#{prefix}/logout", controller: ctrl, action: 'destroy' end end