【问题标题】:Help Using Devise with the built-in Omniauth Support帮助使用带有内置 Omniauth 支持的设计
【发布时间】:2011-07-07 12:54:05
【问题描述】:

我尝试关注https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview,但不知何故,当我查看生成的路由时,我只看到回调路径,而不是授权路径(实际上,我在 user_omniauth_authorize_path 链接的视图上看到错误)。

我认为这可能是 OmniAuth 和 Devise (since after 0.2.0.beta Omniath allows configurable setting, and the routes must be defined) 的版本问题。但是,当尝试使用较旧的 OmniAuth 版本时,我收到错误“You are using an old OmniAuth version, please ensure 0.2.0.beta or later installed.”。

我尝试使用 Devise 的 master 1.2.rc 和omniauth 分支以及整个omniauth gem(0.2.0.beta 之后)和'oa-oauth',但没有成功。 我也尝试定义路线:

match '/users/auth/:action/', :to => 'users/omniauth_callbacks#action', :as => 'user_omniauth_authorize'

这对路线有帮助,但是当按下链接时,我确实收到了设计找不到映射的错误。有趣的是,将 devise_for 中的控制器更改为无效(例如在 users/omniauth_callbacks 之前添加“/”)第一次导致错误(“控制器名称不应以斜杠开头”),但实际上发送了一个小的重新加载我到 facebook 并返回(但自然没有定义回调路由)。

我是 Ruby 的新手,不太确定我从哪里开始。任何帮助将不胜感激。

【问题讨论】:

  • 你解决过这个问题吗?
  • 没关系,一个简单的服务器重启为我修复了它。

标签: ruby-on-rails authentication oauth devise omniauth


【解决方案1】:

这个方法是defined by devise,不是通过路由。因此,当您运行rake routes 时它不会显示。该方法采用您在 config/initializers/devies.rb 中配置的 oauth 提供程序之一。例如,如果您在 devise.rb 中定义以下内容:

config.omniauth :facebook, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET

那么你应该像这样构建授权链接:

<%= link_to "Facebook Sign in", user_omniauth_authorize_path(:facebook) %>

【讨论】:

  • 正如我所提到的 - 在我看来,这个链接不起作用(未定义的方法)。
  • 我的错,我没有点击 0.2 beta 问题。您使用的是什么提供商,我刚刚升级到 oa-oauth 0.2.0.beta5 和 devise 1.2rc,facebook 对我来说很好。
  • 设计 1.4.5 和 omniauth 0.3.0.rc3 工作正常。一定要重启服务器——它永远不会出现在 rake 路由中。
【解决方案2】:

我的问题是由于omniauth 和devise 的不同版本造成的。最终奏效的是在我的 gemfile 中使用这个配置:

gem 'devise', :git => 'git://github.com/plataformatec/devise.git'
gem 'omniauth', '>=0.2.0.beta'
gem 'oa-oauth', :require => 'omniauth/oauth'

你可以看到更多关于我的实现的细节here

【讨论】:

  • 看起来像是设计 1.4.8 中的问题; omn​​iauth 0.3.0 和 devise 1.4.7 为我工作。
  • 将 devise :omniauthable 放在用户模型上。这将解决问题
  • @JudeArasu - 它已经存在(查看实现链接) - 仍然没有工作。
猜你喜欢
  • 2014-12-06
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 2014-10-19
  • 2011-01-24
  • 1970-01-01
相关资源
最近更新 更多