Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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 轨道&x2B;通过Oauth的角度令牌授权_Ruby On Rails_Angularjs_Authentication_Oauth_Devise - Fatal编程技术网

Ruby on rails 轨道&x2B;通过Oauth的角度令牌授权

Ruby on rails 轨道&x2B;通过Oauth的角度令牌授权,ruby-on-rails,angularjs,authentication,oauth,devise,Ruby On Rails,Angularjs,Authentication,Oauth,Devise,我使用的是一个Rails后端(API作用域为“/API”)和一个有角度的前端。我正在尝试使用ng token auth合并基于令牌的授权,并设计token auth 我使用常规注册获得了登录名,但似乎无法使用oAuth。我也不明白如何调试这个问题 我用secret/key设置了一个Github应用程序。在我的前端,有一个按钮将使用$auth.authenticate('github')中内置的ng令牌auth 发生的情况是,页面将重定向到github,请求许可,然后重定向回我的网站(虽然是新选项

我使用的是一个Rails后端(API作用域为“/API”)和一个有角度的前端。我正在尝试使用ng token auth合并基于令牌的授权,并设计token auth

我使用常规注册获得了登录名,但似乎无法使用oAuth。我也不明白如何调试这个问题

我用secret/key设置了一个Github应用程序。在我的前端,有一个按钮将使用$auth.authenticate('github')中内置的ng令牌auth

发生的情况是,页面将重定向到github,请求许可,然后重定向回我的网站(虽然是新选项卡,但不是原始选项卡),并加载主页

身份验证实际上没有执行任何操作,也没有设置任何用户。我已经检查了所有的路由、回调URL,并按照和上的所有说明进行了操作,但我不知道出了什么问题或如何诊断

如果我记录$auth.authenticate响应,我确实会得到一个错误,即auth无效(“用户已取消登录”),但这似乎更像是一个超时问题,而不是什么

是否有一种方法可以查看头中是否确实发送了任何令牌?潜在的问题是什么?我也试过推特

(setting the host to either http://127.0.0.1:3000 or http://localhost:3000)
编辑:这是终端中http请求的外观

Started GET "/omniauth/github?     auth_origin_url=http%3A%2F%2Flocalhost%3A3000%2Fsign_in&favorite_color=blue&resource_class=User" for      127.0.0.1 at 2014-12-29 18:33:55 -0800
I, [2014-12-29T18:33:55.295507 #46466]  INFO -- omniauth: (github) Request phase initiated.


Started GET "/omniauth/github/callback?code=3c03dbb28c2bb0bc8d36&state=5ce4e8bae5f9671ffe521ceeb54a14eb42c3b2866cd79b8e" for 127.0.0.1 at 2014-12-29 18:33:55 -0800
I, [2014-12-29T18:33:55.692405 #46466]  INFO -- omniauth: (github) Callback phase initiated.
Processing by HomeController#index as HTML
Parameters: {"code"=>"3c03dbb28c2bb0bc8d36", "state"=>"5ce4e8bae5f9671ffe521ceeb54a14eb42c3b2866cd79b8e"}
Rendered home/index.html.erb within layouts/application (0.0ms)
Completed 200 OK in 117ms (Views: 116.6ms | ActiveRecord: 0.0ms)
编辑:

好吧,我开始工作了。有点我的rails routes文件包含以下行:

  root to: "home#index", anchor: false
我删除了“anchor:false”,omniauth的回调现在可以成功运行了。但是,这使得轨道/角度路线无法100%工作/发挥良好效果。例如,如果我转到localhost:3000,然后单击指向/sign_in的链接,它将转到正确的页面。如果我尝试直接在浏览器中转到localhost:3000/登录,rails会抱怨缺少路由

好的,解决了

因此,我只是在rails routes文件中重新创建了回调路由,它成功了。 获取“/omniauth/:provider/callback”=>“设计令牌\u身份验证/omniauth\u回调\35;重定向\u回调”


当我早些时候检查rails路由时,它有确切的路由,但它是在定义根路由之后。如果不在rails路由中明确定义它,我不知道如何修复它。

您可以回答自己的问题。如果你能解决它,那将是个好主意:)