Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails omniauth重定向\u回调在与常规设备一起使用设备\u令牌\u验证gem时不起作用_Ruby On Rails_Angularjs_Devise_Ionic Framework_Omniauth - Fatal编程技术网

Ruby on rails omniauth重定向\u回调在与常规设备一起使用设备\u令牌\u验证gem时不起作用

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=<

我试图让ng token auth、Desive_token_auth和omniauth facebook在rails/angular(实际上是ionic)应用程序中与常规Desive一起工作

发生的情况是,当用户单击“通过facebook登录”按钮时,浏览器将重定向到facebook,一旦应用程序获得授权,我会在服务器日志中看到facebook回调请求:

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"