我在我的gemfile中添加了omniauth gem并尝试运行bundle install,但是收到了有关rails和bundler版本不兼容的消息.我试图更新rails,但收到有关与其他gem不兼容的消息.如何将bundler降级到1.0?
$ bundle install
Fetching gem metadata from http://rubygems.org/......
Fetching gem metadata from http://rubygems.org/..
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 3.0.0) ruby depends on
bundler (~> 1.0.0) ruby
Current Bundler version:
bundler (1.1.1)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Run Code Online (Sandbox Code Playgroud)
和
$ bundle update rails
Fetching gem metadata from http://rubygems.org/......
Fetching gem metadata from http://rubygems.org/..
Bundler could not find …Run Code Online (Sandbox Code Playgroud) 我已经按照Railscast#235尝试建立一个最小的Facebook身份验证.
我首先建立了一个Twitter身份验证,就像Ryan本人所做的那样.这完美无瑕.
然后我继续添加Facebook登录.但是,在授权应用程序后,重定向/auth/facebook/callback失败并显示:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
我正在使用localhost.我没有在应用程序中设置任何SSL.我究竟做错了什么?
我正在使用带有rails的omniauth gem,它可以很好地登录用户,但每次它都会带你到fb登录页面然后重定向你.我想知道是否有办法做大多数页面的操作并在弹出窗口中显示fb登录,然后在完成后重新加载父div.有任何想法吗?
谢谢!
我需要将一些参数传递给回调动作.从源代码来看,OmniAuth应该将查询字符串添加到回调URL,但奇怪的是它没有.当我打开
/auth/facebook?from=partner
Run Code Online (Sandbox Code Playgroud)
...并被重定向到Facebook,return_url只是
/auth/facebook/callback
Run Code Online (Sandbox Code Playgroud)
......没有任何参数.
我一直试图弄清楚Ryan Bates在他的Facebook身份验证截屏中如何设置以下"FACEBOOK_APP_ID"和"FACEBOOK_SECRET"环境变量.
provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET']
Run Code Online (Sandbox Code Playgroud)
有类似的问题,但没有我能够在Rails 3.2.1上工作的答案.
更新:
截至2013年5月,我处理ENV变量的首选方法是通过费加罗宝石
ruby-on-rails environment-variables railscasts omniauth ruby-on-rails-3
我正在构建一个Rails API,并已成功为用户构建了一种使用Omniauth Identity进行身份验证的方法.
我们只需从客户端发送到auth/identity/callback,传入auth_key和密码.
然后,服务器返回一个门卫令牌,用户随后使用该门牌令牌来访问应用程序并识别自己.
该图说明了这一点:

我们现在想要从客户端实现Facebook登录,但在理论上和实际上都无法使其正常工作.
在一个简单的带有Omniauth身份的Rails应用程序上,你只需要调用auth/facebook,但是如果我们在客户端中放置一个链接,它会调用服务器,然后服务器会记录:
INFO -- omniauth: (facebook) Request phase initiated.
该应用程序在Facebook中正确设置了ID和密码,因此登录提示可能会返回到服务器?
虽然链接身份验证我很困惑.任何帮助感激不尽!

我有一个方案,当我使用真正的omniauth时工作得很好,但是当我用黄瓜/水豚的模拟auth运行它时失败了.
在回调中,当我这样做时sign_in @user,它成功创建用户并登录... current_user已设置.但是当我这样做时redirect_to request.env['omniauth.origin'] || '/',在接下来的行动中,current_user现在是零.
我已通过屏幕截图确认/暂停浏览器它不能使用模拟身份验证.firefox和chrome驱动程序中出现相同的错误.
知道为什么会发生这种情况吗?
/features/support/env.rb:
Cucumber::Rails::Database.javascript_strategy = :truncation
Run Code Online (Sandbox Code Playgroud)
场景:
@javascript
Scenario:
Given I am on the home page
When I press "Login"
And I should see "Login with Twitter" in the selector "#login-modal"
Given Omniauth returns a user with provider "twitter" and uid "1" and nickname "foo"
When I login with Twitter
Then I should be logged in as "foo"
Run Code Online (Sandbox Code Playgroud)
步骤定义:
Given(/^Omniauth returns a user with provider "(.*?)" …Run Code Online (Sandbox Code Playgroud) (仅供参考:我正在关注来自railscast#241的Twitter Omniauth.我成功使用Twitter,现在进入Facebook)
当我使用Omniauth登录Facebook时,我收到此错误:
Faraday::Error::ConnectionFailed
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
这是我的代码
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, '<key from fb>', '<another key from fb>'
end
Run Code Online (Sandbox Code Playgroud)
实际上我的代码中没有什么,我只是在sessionController中,我想使用to_yaml来查看request.env中的内容
class SessionsController < ApplicationController
def create
raise request.env["omniauth.auth"].to_yaml
end
end
Run Code Online (Sandbox Code Playgroud)
如何解决法拉第错误?
我正在使用Omniauth构建Rails应用程序以进行登录服务.要对Google进行身份验证,我使用的是OmniAuth Google OAuth2策略.
当用户点击"允许访问"按钮时,一切正常.但是当用户点击"不再感谢"按钮时,会出现以下错误.
OmniAuth::Strategies::OAuth2::CallbackError
Run Code Online (Sandbox Code Playgroud)
我尝试在应用程序控制器中添加以下救援代码.
class ApplicationController < ActionController::Base
rescue_from OmniAuth::Strategies::OAuth2::CallbackError, :with =>
:omniauth_callback_error_handler
protected
def omniauth_callback_error_handler
redirect_to init_sign_in_users_path
end
end
Run Code Online (Sandbox Code Playgroud)
但没有运气.
任何的想法?
谢谢 :)
我正在尝试使用OmniAuth对Facebook用户进行身份验证.最初,它工作,但一路上它只是停止工作,并开始给我这个错误信息:
OpenSSL :: SSL :: SSLError SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败
相同的代码适用于Twitter,我似乎无法理解为什么它不适用于Facebook.我在网上寻求帮助,但我没有成功.
这是我正在建立的网站的链接:http://www.bestizz.com/
这个网址会给你错误信息:http://www.bestizz.com/auth/facebook
omniauth ×10
facebook ×5
railscasts ×2
bundler ×1
callback ×1
capybara ×1
cucumber ×1
gem ×1
gem-bundler ×1
oauth-2.0 ×1