几乎相同的问题,但是Get
请求被问到(这可能表明他们想在登录后做一些事情 - 但事情分开,实际上我根据Digital Ocean教程和我做的时候配置了我的应用程序来自Google Postman Plugin的请求使用localhost:3000/auth/facebook/callback
它给了我以下错误
ActionController :: RoutingError(没有路由匹配[POST] “/ AUTH /实/回调”):
在我的 devise.rb
中 config.omniauth :facebook, 'key', 'abc_secret',{ :scope => 'email' }
在我的用户模型
中devise :database_authenticatable, :recoverable,
:trackable, :validatable, :registerable,
:omniauthable, :omniauth_providers => [:facebook]
在我的 routes.rb
中mount_devise_token_auth_for 'User', at: 'auth', :controllers => { :omniauth_callbacks => "callbacks" }
上述路线是根据devise_token_auth定义的。当我执行rake routes
它只显示与amniauth相关的路线
auth_failure GET /auth/failure(.:format) callbacks#omniauth_failure
GET /auth/:provider/callback(.:format) callbacks#omniauth_success
GET /omniauth/:provider/callback(.:format) callbacks#redirect_callbacks
omniauth_failure GET /omniauth/failure(.:format) callbacks#omniauth_failure
GET /auth/:provider(.:format)
您可以看到这些都是Get
个请求,因此服务器的投诉有意义(像往常一样),但为什么devise
没有成功。以及如何实现它
在我的 GemFile
中gem 'devise'
gem 'devise_token_auth'
gem 'therubyracer'
gem 'omniauth'
gem 'omniauth-digitalocean'
gem 'omniauth-facebook'
注意:可能值得一提的是,此应用实际上是rails_api application