【问题标题】:omniauth redirect_callbacks not working when using devise_token_auth gem alongside regular devise将 devise_token_auth gem 与常规设计一起使用时,omniauth redirect_callbacks 不起作用
【发布时间】: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


    【解决方案1】:

    好的,我让它工作了,它似乎是 devise_token_auth (0.1.34) 的一个错误(?)。作为一种解决方法并防止回调重定向到/users/facebook/callback,我将omniauth_callbacks_controller.rb 中redirect_callbacks 方法的注释行替换为它下面的行:

    #redirect_route = "/#{Devise.mappings[devise_mapping].as_json["path"]}/#{params[:provider]}/callback"
    redirect_route = "/api/v1/auth/#{params[:provider]}/callback"
    

    它很难看,但现在可以使用。我用 GitHub 上的项目打开了this issue

    【讨论】:

      猜你喜欢
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多