Ruby on rails omniauth重定向\u回调在与常规设备一起使用设备\u令牌\u验证gem时不起作用
我试图让ng token auth、Desive_token_auth和omniauth facebook在rails/angular(实际上是ionic)应用程序中与常规Desive一起工作 发生的情况是,当用户单击“通过facebook登录”按钮时,浏览器将重定向到facebook,一旦应用程序获得授权,我会在服务器日志中看到facebook回调请求:Ruby on rails omniauth重定向\u回调在与常规设备一起使用设备\u令牌\u验证gem时不起作用,ruby-on-rails,angularjs,devise,ionic-framework,omniauth,Ruby On Rails,Angularjs,Devise,Ionic Framework,Omniauth,我试图让ng token auth、Desive_token_auth和omniauth facebook在rails/angular(实际上是ionic)应用程序中与常规Desive一起工作 发生的情况是,当用户单击“通过facebook登录”按钮时,浏览器将重定向到facebook,一旦应用程序获得授权,我会在服务器日志中看到facebook回调请求: https://<app>.herokuapp.com/omniauth/facebook/callback?code=<
https://<app>.herokuapp.com/omniauth/facebook/callback?code=<some_code>&state=<state>
生成以下(相关)路线:
我不明白对/users/facebook/callback的请求来自哪里。据我所知,它实际上应该重定向到/api/v1/auth/:provider/callback
有人知道我错过了什么吗?如果能得到一些正确方向的帮助/指点,那就太好了
谢谢 好的,我让它工作了,它似乎是一个缺陷(?)与Desive_token_auth(0.1.34)。作为一种解决方法,为了防止回调重定向到/users/facebook/callback,我将omniauth\u callbacks\u controller.rb中redirect\u callbacks方法的这一注释行替换为下面的一行:
#redirect_route = "/#{Devise.mappings[devise_mapping].as_json["path"]}/#{params[:provider]}/callback"
redirect_route = "/api/v1/auth/#{params[:provider]}/callback"
虽然很难看,但现在还可以用。我在GitHub打开了这个项目。好的,我让它工作起来了,它似乎是Desive_token_auth(0.1.34)的一个bug(?)。作为一种解决方法,为了防止回调重定向到/users/facebook/callback,我将omniauth\u callbacks\u controller.rb中redirect\u callbacks方法的这一注释行替换为下面的一行:
#redirect_route = "/#{Devise.mappings[devise_mapping].as_json["path"]}/#{params[:provider]}/callback"
redirect_route = "/api/v1/auth/#{params[:provider]}/callback"
虽然很难看,但现在还可以用。我在GitHub开始了这个项目
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
#redirect_route = "/#{Devise.mappings[devise_mapping].as_json["path"]}/#{params[:provider]}/callback"
redirect_route = "/api/v1/auth/#{params[:provider]}/callback"