Omniauth错误:没有路由与[GET]"/auth/facebook"匹配; [英] Omniauth error: No route matches [GET] "/auth/facebook"
本文介绍了Omniauth错误:没有路由与[GET]"/auth/facebook"匹配;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的应用在三周前运行良好,但是在尝试使用Facebook进行登录后,我却收到了以下错误消息:
My app was working fine three weeks ago, but upon returning to work on it I am getting this error after attempting to log in via Facebook:
No route matches [GET] "/auth/facebook"
不确定发生了什么.我看过Stackoverflow,但只发现了与Devise gem有关的帮助.
Not sure what's going on. I've looked at Stackoverflow but found only help related to the Devise gem.
注意:我没有使用Devise gem.
我的应用程序在Ruby 2.0和Rails 4上运行
My app is on Ruby 2.0 and Rails 4
我的gemlock文件显示了这些版本的omniauth:
My gemlock file is showing these versions of omniauth:
oauth2 (0.8.1)
faraday (~> 0.8)
httpauth (~> 0.1)
jwt (~> 0.1.4)
multi_json (~> 1.0)
rack (~> 1.2)
omniauth (1.1.4)
hashie (>= 1.2, < 3)
rack
omniauth-facebook (1.4.0)
omniauth-oauth2 (~> 1.0.2)
omniauth-oauth2 (1.0.3)
oauth2 (~> 0.8.0)
omniauth (~> 1.0)
这是我的路线.rb:
Mybrary::Application.routes.draw do
get "sessions/create"
get "sessions/destroy"
resources :users do
resources :items, except: [:index]
end
resources :groups
root 'users#splash'
get 'items/search' => 'items#search_results', as: :search_item
post 'user/:id/requests/:item_id' => 'users#request_loan', as: :request_loan
post 'user/:id/approves/:item_id' => 'users#approve_loan', as: :approve_loan
post 'user/:id/denies/:item_id' => 'users#deny_loan', as: :deny_loan
post 'user/:id/returns/:item_id' => 'users#return_loan', as: :return_loan
post 'group/:id/join_group/:user_id' => 'groups#join_group', as: :join_group
post 'group/:id/leave_group/:user_id' => 'groups#leave_group', as: :leave_group
post 'group/:id/approve_member/:user_id' => 'groups#approve_member', as: :approve_member
post 'group/:id/deny_member/:user_id' => 'groups#deny_member', as: :deny_member
match 'auth/:provider/callback', to: 'sessions#create', via: [:get, :post]
match 'auth/failure', to: redirect('/'), via: [:get, :post]
match 'signout', to: 'sessions#destroy', as: 'signout', via: [:get, :post]
end
推荐答案
而不是这个
match 'auth/:provider/callback', to: 'sessions#create', via: [:get, :post]
match 'auth/failure', to: redirect('/'), via: [:get, :post]
match 'signout', to: 'sessions#destroy', as: 'signout', via: [:get, :post]
尝试这个
get 'auth/:provider/callback' => 'sessions#create'
get 'auth/failure' => redirect('/')
get 'signout' => 'sessions#destroy', as: 'signout'
这篇关于Omniauth错误:没有路由与[GET]"/auth/facebook"匹配;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文