I've never received this error until I tried to use oauth via a namespaced controller - not sure if it's a coincidence or there is an issue here. Any help is appreciated!
Here are some relevant code snippets.
routes.rb
devise_for :users,
class_name: 'Accounts::User',
path: 'accounts',
controllers: {
omniauth_callbacks: 'accounts/omniauth_callbacks',
registrations: 'accounts/registrations'
}
accounts/user.rb
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable, :omniauthable,
omniauth_providers: %i[facebook google_oauth2]
accounts/omniauth_callbacks_controller.rb
module Accounts
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
def facebook
sign_in user_from_auth_hash
redirect_to root_url, notice: 'Facebook authentication successful.'
end
end
end
initializers/devise.rb
config.omniauth_path_prefix = '/accounts/auth'
config.omniauth :facebook, ENV['FACEBOOK_OAUTH_ID'],
ENV['FACEBOOK_OAUTH_SECRET']
Let me know if there's anything else to add. Thanks!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…