【发布时间】:2015-11-23 14:15:44
【问题描述】:
我正在尝试让 ng-token-auth、devise_token_auth 和 omniauth-facebook 在与常规设计一起工作的 rails/angular(实际上是离子)应用程序中协同工作。
发生的情况是,当用户通过 facebook 按钮单击登录时,浏览器被重定向到 facebook,一旦应用被授权,我在服务器日志中看到一个 facebook 回调请求:
https://<app>.herokuapp.com/omniauth/facebook/callback?code=<some_code>&state=<state>
此请求从我的服务器获得 302 响应以发出以下请求:
https://<app>.herokuapp.com/users/facebook/callback
此请求以 404 告终,因为 /users/facebook/callback 的路由在我的 routes.rb 中不存在:
devise_for :users
namespace :api do
scope :v1 do
mount_devise_token_auth_for 'User', at: 'auth'
end
end
生成以下(相关)路由:
api_v1_auth_validate_token_path GET /api/v1/auth/validate_token(.:format) devise_token_auth/token_validations#validate_token
api_v1_auth_failure_path GET /api/v1/auth/failure(.:format) devise_token_auth/omniauth_callbacks#omniauth_failure
GET /api/v1/auth/:provider/callback(.:format) devise_token_auth/omniauth_callbacks#omniauth_success
GET /omniauth/:provider/callback(.:format) devise_token_auth/omniauth_callbacks#redirect_callbacks
omniauth_failure_path GET /omniauth/failure(.:format) devise_token_auth/omniauth_callbacks#omniauth_failure
我不明白对 /users/facebook/callback 的请求来自何处。据我了解,它应该真正重定向到 /api/v1/auth/:provider/callback。
有人知道我错过了什么吗?在正确的方向上获得一些帮助/指示会很棒。
谢谢!
【问题讨论】:
标签: ruby-on-rails angularjs devise ionic-framework omniauth