2013-04-23 71 views
2

我使用https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview集成omniauth Facebook的无法从Facebook验证您的身份。但我得到的错误:Rails的:因为“证书无效”

Could not authenticate you from Facebook because "Invalid credentials". 

我有设计安装。当我点击Facebook登录链接时,它会将我重定向到Facebook登录。当我输入我的详细信息时,它会回到设计标志并给出上述错误。我在https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overview上检查了“Invalid credentials”的解决方案,我的应用是为App Type = Web设置的头文件。没有得到它为什么不工作。

而且我的应用程序上线,但尚未从Facebook批准。但我不认为它与这个错误有关。以下是东西我做了omniauth Facebook的:

Gemfile中包含:

gem 'omniauth' 
gem 'omniauth-facebook', '1.4.0' 

在用户模型,补充说:

devise :omniauthable, :omniauth_providers => [:facebook] 
attr_accessible :provider, :uid 

    def self.find_for_facebook_oauth(auth, signed_in_resource=nil) 
    user = User.where(:provider => auth.provider, :uid => auth.uid).first 
    unless user 
    user = User.create(name:auth.extra.raw_info.name, 
         provider:auth.provider, 
         uid:auth.uid, 
         email:auth.info.email, 
         password:Devise.friendly_token[0,20] 
        ) 
    end 
user 
end 

devise.rb

require "omniauth-facebook" 
config.omniauth :facebook, "APP_ID", "APP_SECRET", :scope => "offline_access, email" 

链接facebook sign_in:

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

route.rb:

devise_for:用户,:控制器=> {:omniauth_callbacks => “omniauth_callbacks”}

Omniauth控制器:

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController 
    def facebook 
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user) 
    if @user.persisted? 
     sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated 
     set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format? 
    else 
     session["devise.facebook_data"] = request.env["omniauth.auth"] 
     redirect_to new_user_registration_url 
    end 
    end 
end 

可以在这个人的帮助?

+0

我不知道这件事,但可能是因为你的电子邮件地址在你的omniauth范围之内有空间吗? 我有同样的错误由于一个错字 – golfadas 2013-08-21 13:33:59

+0

可能重复[Rails的:无法从Facebook验证您的身份,因为“无效凭证”(http://stackoverflow.com/questions/16176208/rails-could-not-authenticate- you-from-facebook-because-invalid-credentials) – mindriot 2014-09-02 08:08:21

+0

这已被标记为您发布的具有更多信息的相同问题的副本。将来如果您有其他信息要添加到问题中,请编辑现有问题,而不是开始新问题。对于omniauth-facebook(1.4.0), – mindriot 2014-09-02 08:17:57

回答

1

尝试清除浏览器cookies。有时omniauth不会仅仅因为你必须删除你的浏览器cookies而工作。

的另一件事可能是该版本是不正确的。

这个问题似乎是依赖关系。在1.4.0它需要 omniauth-的oauth2 1.0.3和1.4.1在它需要omniauth-OAuth的1.1.x版本

为在这里看到:https://github.com/intridea/omniauth/issues/276

+0

版本是omniauth-oauth2(1.0.2)。它可以或应该是1.0.3? – user2206724 2013-04-23 07:28:45

+0

只是尝试尽可能地更新所有。这可以工作。但我不确定。 – 2013-04-23 07:29:37

+0

清除了cookie,我尝试使用sudo gem install omniauth-oauth2 --version 1.0.3进行升级。但它仍然是1.0.2。获取相同的错误。 – user2206724 2013-04-23 08:45:09