2

I've been struggling with this error for a while now, and haven't quite figured out what I've got wrong.

My site can be found here: https://chaynring.com

My issue: when running the server locally, I'm able to authenticate via Google Oauth2 without issue; however, Google Oauth2 fails on my server (hosted by Heroku) and I don't know why.

Here's a pastebin of my routes: https://pastebin.com/S8piCjcw

And the log that I get on Heroku is:

2021-04-20T02:32:40.506069+00:00 heroku[router]: at=info method=GET path="/auth/google_oauth2" host=chaynring.com request_id=055519f9-9246-4966-8b7a-4b3016a7dee6 fwd="142.147.57.249" dyno=web.1 connect=1ms service=7ms status=404 bytes=1966 protocol=https
2021-04-20T02:32:40.500506+00:00 app[web.1]: I, [2021-04-20T02:32:40.500394 #4]  INFO -- : [055519f9-9246-4966-8b7a-4b3016a7dee6] Started GET "/auth/google_oauth2" for 142.147.57.249 at 2021-04-20 02:32:40 +0000
2021-04-20T02:32:40.502460+00:00 app[web.1]: F, [2021-04-20T02:32:40.502396 #4] FATAL -- : [055519f9-9246-4966-8b7a-4b3016a7dee6]   
2021-04-20T02:32:40.502560+00:00 app[web.1]: F, [2021-04-20T02:32:40.502498 #4] FATAL -- : [055519f9-9246-4966-8b7a-4b3016a7dee6] ActionController::RoutingError (No route matches [GET] "/auth/google_oauth2"):
2021-04-20T02:32:40.502652+00:00 app[web.1]: F, [2021-04-20T02:32:40.502585 #4] FATAL -- : [055519f9-9246-4966-8b7a-4b3016a7dee6]   
2021-04-20T02:32:40.502766+00:00 app[web.1]: F, [2021-04-20T02:32:40.502692 #4] FATAL -- : [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/actionpack-5.2.4.5/lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
2021-04-20T02:32:40.502768+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/actionpack-5.2.4.5/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
2021-04-20T02:32:40.502769+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/railties-5.2.4.5/lib/rails/rack/logger.rb:38:in `call_app'
2021-04-20T02:32:40.502770+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/railties-5.2.4.5/lib/rails/rack/logger.rb:26:in `block in call'
2021-04-20T02:32:40.502771+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.5/lib/active_support/tagged_logging.rb:71:in `block in tagged'
2021-04-20T02:32:40.502771+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.5/lib/active_support/tagged_logging.rb:28:in `tagged'
2021-04-20T02:32:40.502772+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.5/lib/active_support/tagged_logging.rb:71:in `tagged'
2021-04-20T02:32:40.502772+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/railties-5.2.4.5/lib/rails/rack/logger.rb:26:in `call'
2021-04-20T02:32:40.502773+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/actionpack-5.2.4.5/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
2021-04-20T02:32:40.502773+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/actionpack-5.2.4.5/lib/action_dispatch/middleware/request_id.rb:27:in `call'
2021-04-20T02:32:40.502774+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call'
2021-04-20T02:32:40.502774+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'
2021-04-20T02:32:40.502775+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.5/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
2021-04-20T02:32:40.502775+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/actionpack-5.2.4.5/lib/action_dispatch/middleware/executor.rb:14:in `call'
2021-04-20T02:32:40.502776+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/actionpack-5.2.4.5/lib/action_dispatch/middleware/static.rb:127:in `call'
2021-04-20T02:32:40.502776+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call'
2021-04-20T02:32:40.502776+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/actionpack-5.2.4.5/lib/action_dispatch/middleware/ssl.rb:74:in `call'
2021-04-20T02:32:40.502777+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/railties-5.2.4.5/lib/rails/engine.rb:524:in `call'
2021-04-20T02:32:40.502777+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/puma-3.12.6/lib/puma/configuration.rb:227:in `call'
2021-04-20T02:32:40.502777+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/puma-3.12.6/lib/puma/server.rb:706:in `handle_request'
2021-04-20T02:32:40.502778+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/puma-3.12.6/lib/puma/server.rb:476:in `process_client'
2021-04-20T02:32:40.502778+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/puma-3.12.6/lib/puma/server.rb:334:in `block in run'
2021-04-20T02:32:40.502778+00:00 app[web.1]: [055519f9-9246-4966-8b7a-4b3016a7dee6] vendor/bundle/ruby/2.7.0/gems/puma-3.12.6/lib/puma/thread_pool.rb:135:in `block in spawn_thread'

I feel like this is something with the middleware I have defined on my application because the GET /auth/google_oauth2 route is not explicitly defined in my routes.rb, but it works locally just fine.

For more context, this is the output I get from the rails server when running locally:

Started GET "/auth/google_oauth2" for ::1 at 2021-04-19 21:40:04 -0500
I, [2021-04-19T21:40:04.244529 #40035]  INFO -- omniauth: (google_oauth2) Request phase initiated.

Has anyone had this issue?

Local routes:

$ rails routes
                          Prefix Verb   URI Pattern                                                                              Controller#Action
                            root GET    /                                                                                        static_pages#index
                           login GET    /login(.:format)                                                                         sessions#new
                                 POST   /login(.:format)                                                                         sessions#create
                          logout DELETE /logout(.:format)                                                                        sessions#destroy
                          signup GET    /signup(.:format)                                                                        users#new
                           about GET    /about(.:format)                                                                         static_pages#about
                            help GET    /help(.:format)                                                                          static_pages#help
                unauthed_exports GET    /unauthed_exports/:sale_export_id(.:format)                                              static_pages#unauthed_export
                    contacts_new GET    /contacts/new(.:format)                                                                  contacts#new
                        contacts POST   /contacts(.:format)                                                                      contacts#create
                                 GET    /auth/:provider/callback(.:format)                                                       sessions#omniauth
                   settings_user GET    /users/:id/settings(.:format)                                                            users#settings
                   comments_user GET    /users/:id/comments(.:format)                                                            users#comments
                      admin_user GET    /users/:id/admin(.:format)                                                               users#admin
                    exports_user GET    /users/:id/exports(.:format)                                                             users#exports
        user_permission_requests GET    /users/:user_id/permission_requests(.:format)                                            permission_requests#index
                                 POST   /users/:user_id/permission_requests(.:format)                                            permission_requests#create
     new_user_permission_request GET    /users/:user_id/permission_requests/new(.:format)                                        permission_requests#new
    edit_user_permission_request GET    /users/:user_id/permission_requests/:id/edit(.:format)                                   permission_requests#edit
         user_permission_request GET    /users/:user_id/permission_requests/:id(.:format)                                        permission_requests#show
                                 PATCH  /users/:user_id/permission_requests/:id(.:format)                                        permission_requests#update
                                 PUT    /users/:user_id/permission_requests/:id(.:format)                                        permission_requests#update
                                 DELETE /users/:user_id/permission_requests/:id(.:format)                                        permission_requests#destroy
                           users GET    /users(.:format)                                                                         users#index
                                 POST   /users(.:format)                                                                         users#create
                        new_user GET    /users/new(.:format)                                                                     users#new
                       edit_user GET    /users/:id/edit(.:format)                                                                users#edit
                            user GET    /users/:id(.:format)                                                                     users#show
                                 PATCH  /users/:id(.:format)                                                                     users#update
                                 PUT    /users/:id(.:format)                                                                     users#update
                                 DELETE /users/:id(.:format)                                                                     users#destroy
                        new_bike GET    /bikes/new(.:format)                                                                     bikes#new
                       all_bikes GET    /bikes(.:format)                                                                         bikes#index
                            bike GET    /bikes/:make/:model/:year(.:format)                                                      bikes#show
                           bikes POST   /bikes(.:format)                                                                         bikes#create
                       edit_bike GET    /bikes/:make/:model/:year/edit(.:format)                                                 bikes#edit
                      patch_bike PATCH  /bikes/:make/:model/:year(.:format)                                                      bikes#update
                                 PUT    /bikes/:make/:model/:year(.:format)                                                      bikes#update
                                 DELETE /bikes/:make/:model/:year(.:format)                                                      bikes#destroy
                       bike_make GET    /bikes/:make(.:format)                                                                   bikes#make
                 bike_make_model GET    /bikes/:make/:model(.:format)                                                            bikes#make_model
bikes_new_populate_model_options GET    /bikes/bikes/new/populate_model_options(.:format)                                        bikes#populate_model_options
                                 POST   /bikes/:make/:model/:year/sales/pay_for_csv(.:format)                                    charges#checkout
              successful_payment GET    /bikes/:make/:model/:year/sales/successful_payment(.:format)                             bikes#successful_payment
                 new_bike_review GET    /bikes/:make/:model/:year/review(.:format)                                               bike_reviews#new
               final_bike_review GET    /bikes/:make/:model/:year/review/final(.:format)                                         bike_reviews#edit
                                 POST   /bikes/:bike_id/sale_search(.:format)                                                    bikes#sale_search
                                 POST   /bikes/:bike_id/export_search(.:format)                                                  sales#export_search
                      bike_sales GET    /bikes/:make/:model/:year/sales(.:format)                                                sales#index
                   new_bike_sale GET    /bikes/:make/:model/:year/sales/new(.:format)                                            sales#new
                            sale GET    /bikes/:make/:model/:year/sales/:sale_id(.:format)                                       sales#show
                           sales POST   /bikes/:make/:model/:year/sales(.:format)                                                sales#create
                       edit_sale GET    /bikes/:make/:model/:year/sales/:sale_id/edit(.:format)                                  sales#edit
                      patch_sale PATCH  /bikes/:make/:model/:year/sales/:sale_id(.:format)                                       sales#update
                                 PUT    /bikes/:make/:model/:year/sales/:sale_id(.:format)                                       sales#update
                                 DELETE /bikes/:make/:model/:year/sales/:sale_id(.:format)                                       sales#destroy
                    bike_reviews GET    /bikes/bike_reviews(.:format)                                                            bike_reviews#index
                                 POST   /bikes/bike_reviews(.:format)                                                            bike_reviews#create
                     bike_review GET    /bikes/bike_reviews/:id(.:format)                                                        bike_reviews#show
                                 PATCH  /bikes/bike_reviews/:id(.:format)                                                        bike_reviews#update
                                 PUT    /bikes/bike_reviews/:id(.:format)                                                        bike_reviews#update
                                 DELETE /bikes/bike_reviews/:id(.:format)                                                        bike_reviews#destroy
                all_sale_reviews GET    /sales/:sale_id/reviews(.:format)                                                        sale_reviews#index
                 new_sale_review GET    /sales/:sale_id/reviews/new(.:format)                                                    sale_reviews#new
                     sale_review GET    /sales/:sale_id/reviews/:sale_review_id(.:format)                                        sale_reviews#show
                    sale_reviews POST   /sales/:sale_id/reviews(.:format)                                                        sale_reviews#create
               final_sale_review GET    /sales/:sale_id/reviews/:sale_review_id/final(.:format)                                  sale_reviews#edit
                                 PATCH  /sales/:sale_id/reviews/:sale_review_id(.:format)                                        sale_reviews#update
                                 PUT    /sales/:sale_id/reviews/:sale_review_id(.:format)                                        sale_reviews#update
                                 DELETE /sales/:sale_id/reviews/:sale_review_id(.:format)                                        sale_reviews#destroy
              rails_service_blob GET    /rails/active_storage/blobs/:signed_id/*filename(.:format)                               active_storage/blobs#show
       rails_blob_representation GET    /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
              rails_disk_service GET    /rails/active_storage/disk/:encoded_key/*filename(.:format)                              active_storage/disk#show
       update_rails_disk_service PUT    /rails/active_storage/disk/:encoded_token(.:format)                                      active_storage/disk#update
            rails_direct_uploads POST   /rails/active_storage/direct_uploads(.:format)                                           active_storage/direct_uploads#create

Heroku routes:

$ heroku run rails routes
Running rails routes on ⬢ chaynring... up, run.2521 (Hobby)
                          Prefix Verb   URI Pattern                                                                              Controller#Action
                            root GET    /                                                                                        static_pages#index
                           login GET    /login(.:format)                                                                         sessions#new
                                 POST   /login(.:format)                                                                         sessions#create
                          logout DELETE /logout(.:format)                                                                        sessions#destroy
                          signup GET    /signup(.:format)                                                                        users#new
                           about GET    /about(.:format)                                                                         static_pages#about
                            help GET    /help(.:format)                                                                          static_pages#help
                unauthed_exports GET    /unauthed_exports/:sale_export_id(.:format)                                              static_pages#unauthed_export
                    contacts_new GET    /contacts/new(.:format)                                                                  contacts#new
                        contacts POST   /contacts(.:format)                                                                      contacts#create
                                 GET    /auth/:provider/callback(.:format)                                                       sessions#omniauth
                   settings_user GET    /users/:id/settings(.:format)                                                            users#settings
                   comments_user GET    /users/:id/comments(.:format)                                                            users#comments
                      admin_user GET    /users/:id/admin(.:format)                                                               users#admin
                    exports_user GET    /users/:id/exports(.:format)                                                             users#exports
        user_permission_requests GET    /users/:user_id/permission_requests(.:format)                                            permission_requests#index
                                 POST   /users/:user_id/permission_requests(.:format)                                            permission_requests#create
     new_user_permission_request GET    /users/:user_id/permission_requests/new(.:format)                                        permission_requests#new
    edit_user_permission_request GET    /users/:user_id/permission_requests/:id/edit(.:format)                                   permission_requests#edit
         user_permission_request GET    /users/:user_id/permission_requests/:id(.:format)                                        permission_requests#show
                                 PATCH  /users/:user_id/permission_requests/:id(.:format)                                        permission_requests#update
                                 PUT    /users/:user_id/permission_requests/:id(.:format)                                        permission_requests#update
                                 DELETE /users/:user_id/permission_requests/:id(.:format)                                        permission_requests#destroy
                           users GET    /users(.:format)                                                                         users#index
                                 POST   /users(.:format)                                                                         users#create
                        new_user GET    /users/new(.:format)                                                                     users#new
                       edit_user GET    /users/:id/edit(.:format)                                                                users#edit
                            user GET    /users/:id(.:format)                                                                     users#show
                                 PATCH  /users/:id(.:format)                                                                     users#update
                                 PUT    /users/:id(.:format)                                                                     users#update
                                 DELETE /users/:id(.:format)                                                                     users#destroy
                        new_bike GET    /bikes/new(.:format)                                                                     bikes#new
                       all_bikes GET    /bikes(.:format)                                                                         bikes#index
                            bike GET    /bikes/:make/:model/:year(.:format)                                                      bikes#show
                           bikes POST   /bikes(.:format)                                                                         bikes#create
                       edit_bike GET    /bikes/:make/:model/:year/edit(.:format)                                                 bikes#edit
                      patch_bike PATCH  /bikes/:make/:model/:year(.:format)                                                      bikes#update
                                 PUT    /bikes/:make/:model/:year(.:format)                                                      bikes#update
                                 DELETE /bikes/:make/:model/:year(.:format)                                                      bikes#destroy
                       bike_make GET    /bikes/:make(.:format)                                                                   bikes#make
                 bike_make_model GET    /bikes/:make/:model(.:format)                                                            bikes#make_model
bikes_new_populate_model_options GET    /bikes/bikes/new/populate_model_options(.:format)                                        bikes#populate_model_options
                                 POST   /bikes/:make/:model/:year/sales/pay_for_csv(.:format)                                    charges#checkout
              successful_payment GET    /bikes/:make/:model/:year/sales/successful_payment(.:format)                             bikes#successful_payment
                 new_bike_review GET    /bikes/:make/:model/:year/review(.:format)                                               bike_reviews#new
               final_bike_review GET    /bikes/:make/:model/:year/review/final(.:format)                                         bike_reviews#edit
                                 POST   /bikes/:bike_id/sale_search(.:format)                                                    bikes#sale_search
                                 POST   /bikes/:bike_id/export_search(.:format)                                                  sales#export_search
                      bike_sales GET    /bikes/:make/:model/:year/sales(.:format)                                                sales#index
                   new_bike_sale GET    /bikes/:make/:model/:year/sales/new(.:format)                                            sales#new
                            sale GET    /bikes/:make/:model/:year/sales/:sale_id(.:format)                                       sales#show
                           sales POST   /bikes/:make/:model/:year/sales(.:format)                                                sales#create
                       edit_sale GET    /bikes/:make/:model/:year/sales/:sale_id/edit(.:format)                                  sales#edit
                      patch_sale PATCH  /bikes/:make/:model/:year/sales/:sale_id(.:format)                                       sales#update
                                 PUT    /bikes/:make/:model/:year/sales/:sale_id(.:format)                                       sales#update
                                 DELETE /bikes/:make/:model/:year/sales/:sale_id(.:format)                                       sales#destroy
                    bike_reviews GET    /bikes/bike_reviews(.:format)                                                            bike_reviews#index
                                 POST   /bikes/bike_reviews(.:format)                                                            bike_reviews#create
                     bike_review GET    /bikes/bike_reviews/:id(.:format)                                                        bike_reviews#show
                                 PATCH  /bikes/bike_reviews/:id(.:format)                                                        bike_reviews#update
                                 PUT    /bikes/bike_reviews/:id(.:format)                                                        bike_reviews#update
                                 DELETE /bikes/bike_reviews/:id(.:format)                                                        bike_reviews#destroy
                all_sale_reviews GET    /sales/:sale_id/reviews(.:format)                                                        sale_reviews#index
                 new_sale_review GET    /sales/:sale_id/reviews/new(.:format)                                                    sale_reviews#new
                     sale_review GET    /sales/:sale_id/reviews/:sale_review_id(.:format)                                        sale_reviews#show
                    sale_reviews POST   /sales/:sale_id/reviews(.:format)                                                        sale_reviews#create
               final_sale_review GET    /sales/:sale_id/reviews/:sale_review_id/final(.:format)                                  sale_reviews#edit
                                 PATCH  /sales/:sale_id/reviews/:sale_review_id(.:format)                                        sale_reviews#update
                                 PUT    /sales/:sale_id/reviews/:sale_review_id(.:format)                                        sale_reviews#update
                                 DELETE /sales/:sale_id/reviews/:sale_review_id(.:format)                                        sale_reviews#destroy
              rails_service_blob GET    /rails/active_storage/blobs/:signed_id/*filename(.:format)                               active_storage/blobs#show
       rails_blob_representation GET    /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
              rails_disk_service GET    /rails/active_storage/disk/:encoded_key/*filename(.:format)                              active_storage/disk#show
       update_rails_disk_service PUT    /rails/active_storage/disk/:encoded_token(.:format)                                      active_storage/disk#update
            rails_direct_uploads POST   /rails/active_storage/direct_uploads(.:format)                                           active_storage/direct_uploads#create

My initializers/omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
  client_id = Rails.application.secrets.GOOGLE_CLIENT_ID
  client_secret = Rails.application.secrets.GOOGLE_CLIENT_SECRET
  provider :google_oauth2, client_id, client_secret
end

5/3 update

I've looked so much at my app, Google Dev Console, and Heroku, that I'm probably missing something really obvious, but I was able to find some potentially helpful information today. Basically I've noticed that when I run my app locally, I get:

  • GET /auth/google_oauth2 -> 302, redirect to Google OAuth screen from the Location in the Response Heades

But I don't get a redirect at all when I try this in production. The code is the same between local and remote, but the config is different. Main thing I've though is this is something weird with Heroku and HTTP (local) vs. HTTPS? I've also added my domains to the Google Dev console so that should be configured.

gr1zzly be4r
  • 2,072
  • 1
  • 18
  • 33
  • Routing shouldn't really change between local and prod. From your routes, it seems like only `/auth/google_oauth2/callback` should be defined -- can you check what `rails routes` (or `rake routes`) returns when run locally versus through heroku run? – Robert Nubel Apr 20 '21 at 16:50
  • Right - they are the same, and that's why I don't understand how it's being routed correctly locally. I put the local & heroku routes in the description. – gr1zzly be4r Apr 20 '21 at 18:16
  • a silly question, I'm sure, but the missing route appears to be `"/auth/google_oauth2"`rather than `"/auth/google_oauth2/callback"` ... what is getting/giving the path that is failing? – Jad Apr 23 '21 at 11:14
  • Right - that route isn't defined, but why then does it work locally for me? I'm using the same code on Heroku as I am locally but it works locally and not on Heroku – gr1zzly be4r Apr 23 '21 at 15:12
  • 1
    Please edit your question and include [example] also which type of credentials did you create on Google Developer console? – Linda Lawton - DaImTo Apr 24 '21 at 13:17
  • Please show your `Rails.application.config.middleware.use OmniAuth::Builder do ...` and make sure you have corresponding credentials on production – Vasfed Apr 25 '21 at 09:05
  • Can we see your code, please define not working. – Linda Lawton - DaImTo Apr 26 '21 at 14:23
  • @Vasfed added the middleware that I'm using. I think that it's definitely something in the middleware – gr1zzly be4r May 03 '21 at 22:44

3 Answers3

3

It looks like you use GET requests to /auth/:provider endpoints.

There is security concern with it. You need to change the verb to POST.

See https://stackoverflow.com/a/65785932/2131983 for more details.

khiav reoy
  • 1,373
  • 13
  • 14
  • This is helpful - I'm now getting: `auth/failure?message=authenticity_error&strategy=google_oauth2` when trying to do the authentication on Heroku, still working locally at least. – gr1zzly be4r May 05 '21 at 14:47
  • This worked! I had to also install `gem 'omniauth-rails_csrf_protection', '~> 1.0'` in my `Gemfile`, but once I did that and switched the request to `POST`, it worked. Thank you! – gr1zzly be4r May 05 '21 at 14:59
1

It looks like your route needs to match this pattern /auth/:provider/callback but doesn't. This is the route you should be accessing /auth/google_oauth2/callback, not /auth/google_oauth2

  • I think that's the callback route, not the authentication route. It's where the Google session information is sent once the user logs in with their Google information. – gr1zzly be4r May 03 '21 at 22:36
0

locally you are using an IPV6 loopback ::1 and on heroku it is using an ipv4 address , have you tried it locally with an 127.0.0.1 instead ?

Amias
  • 335
  • 6
  • 16
  • This has been the comment that's gotten me closest to an answer for the issue that I'm having, as it led me to make sure that my domain was allowed on the Google console. However, I'm still not able to get a successful OAuth request. – gr1zzly be4r May 03 '21 at 22:02