Ruby on rails 轨道&x2B;通过Oauth的角度令牌授权
我使用的是一个Rails后端(API作用域为“/API”)和一个有角度的前端。我正在尝试使用ng token auth合并基于令牌的授权,并设计token auth 我使用常规注册获得了登录名,但似乎无法使用oAuth。我也不明白如何调试这个问题 我用secret/key设置了一个Github应用程序。在我的前端,有一个按钮将使用$auth.authenticate('github')中内置的ng令牌auth 发生的情况是,页面将重定向到github,请求许可,然后重定向回我的网站(虽然是新选项卡,但不是原始选项卡),并加载主页 身份验证实际上没有执行任何操作,也没有设置任何用户。我已经检查了所有的路由、回调URL,并按照和上的所有说明进行了操作,但我不知道出了什么问题或如何诊断 如果我记录$auth.authenticate响应,我确实会得到一个错误,即auth无效(“用户已取消登录”),但这似乎更像是一个超时问题,而不是什么 是否有一种方法可以查看头中是否确实发送了任何令牌?潜在的问题是什么?我也试过推特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,请求许可,然后重定向回我的网站(虽然是新选项
(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路由中明确定义它,我不知道如何修复它。您可以回答自己的问题。如果你能解决它,那将是个好主意:)