【问题标题】:Omniauth is not directing to FB but rather my root? /Omniauth 不是针对 FB 而是针对我的根? /
【发布时间】:2011-09-26 22:37:26
【问题描述】:

在我看来,我有:

通过链接呈现:http://localhost:3000/users/auth/facebook

问题是当我点击它直接加载到的链接时:

Started GET "/" for 127.0.0.1 at 2011-09-26 15:35:29 -0700
  Processing by PagesController#landing_teaser as HTML
Rendered pages/landing_teaser.html.erb within layouts/unauthorized (7.1ms)
Completed 200 OK in 13ms (Views: 11.2ms | ActiveRecord: 1.0ms)

这是我的路线文件:

  match '/users/auth/facebook/callback' => 'authentications#create'
  # Devise
  devise_for :users, :controllers => {:registrations => "registrations"}

关于为什么omniauth失败的任何想法?

谢谢

【问题讨论】:

  • 在浏览器中手动输入生成的url会怎样?
  • @Fabio,浏览器直接进入根目录。奇怪的是,当我清除我的 localhost cookie 时,它​​可以工作。想法?

标签: ruby-on-rails ruby-on-rails-3 devise omniauth


【解决方案1】:

查看您的路线,我发现您只定义了

match '/users/auth/facebook/callback' => 'authentications#create'

但在devise omniauth tutorial 中,路由包含此内容(对于记录,如果您使用onlyomniauth,则应该有所不同)

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

我唯一看到的是/users/auth/facebook 路径与您的路由文件不匹配,并且它通过了一些设计(o omniauth)默认路由。

当您清除 cookie 时,您会重置浏览器的“状态”并开始新的会话。当您有一些 cookie(可能是之前的身份验证)时,它会识别您之前的会话,并且不会要求您再次进行身份验证,除非您明确注销。

我开发了一个使用 devise+omniauth+google 应用程序身份验证的应用程序,它偶尔会要求我提供凭据,即使我关闭浏览器并重新打开它也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2011-10-23
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多