I tried to follow https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview, but somehow when I look at the generated routes I only see the callback path, and not the authorization path (and indeed I get the error on the view with the user_omniauth_authorize_path link).
I assume it might be a versions issue of OmniAuth and Devise (since after 0.2.0.beta Omniath allows configurable setting, and the routes must be defined). However, when trying to use an older OmniAuth version I get the error "You are using an old OmniAuth version, please ensure 0.2.0.beta or later installed.
".
I tried working with Devise's master, 1.2.rc and the the omniauth branch and with both the entire omniauth gem (after 0.2.0.beta) and with 'oa-oauth' but without success. I also tried to define the route:
match '/users/auth/:action/', :to => 'users/omniauth_callbacks#action', :as => 'user_omniauth_authorize'
This helped with the route, but when pressing the link I did get the error that devise cannot find a mapping. Funny enough, changing the controller in the devise_for to be invalid (like adding '/' before the users/omniauth_callbacks) resulted in an error the first time ("Controller name should not start with a slash"), but a small reload actually sent me to facebook and back (but naturally the callback route was not defined).
I am new to Ruby, and not quite sure where I go from here. Any help will be appreciated.
This method is defined by devise, not through routes. Therefore it will not show up when you run rake routes
. The method takes one of the oauth providers that you have configured in config/initializers/devies.rb. For example if you define the following in devise.rb:
config.omniauth :facebook, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET
Then you should build the authorize link like this:
<%= link_to "Facebook Sign in", user_omniauth_authorize_path(:facebook) %>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With