使用OmniAuth进行Facebook授权

时间:2013-11-22 06:33:06

标签: ruby-on-rails facebook ruby-on-rails-3

现在我正在尝试设置Facebook授权系统。但我得到了一个错误信息,不知道为什么。你能给我一些建议吗?

错误讯息:

{
   "error": {
  "message": "Invalid redirect_uri: \u6307\u5b9a\xxxx\u308c\u305fURL\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a\u3067\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
  "type": "OAuthException",
  "code": 191
    }
}

我所做的如下;

①Gemfile

    gem 'omniauth'
    gem 'omniauth-facebook'

②bundleinstall

③config /config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook,"App ID","App Secret"
end

※facebook dev上的网站网址

http://127.0.0.1

④app/视图/布局/ application.html.erb     <%= link_to“Facebook登录”,“/ auth / facebook”%>

⑤config/ routes.rb中

#OmniAuth
  match "/auth/:provider/callback" => "sessions#callback"
  match "/logout" => "sessions#destroy", :as=>:logout
  match '/auth/failure', to: redirect('/') 

⑥/应用/控制器/ sessions_controller.rb

class SessionsController < ApplicationController
  def callback
    raise request.env["omniauth.auth"].to_yaml
  end

end

3 个答案:

答案 0 :(得分:1)

将Facebook dev上的站点URL作为您的系统IP地址,如http://192.168.88.9999:3000和 使用IP地址运行应用程序

希望这会对你有所帮助:)。

答案 1 :(得分:0)

您必须在Facebook上创建自己的应用页面,然后去那里编辑您的网站网址。如果您在本地服务器上,那么如果3000是您的端口号,则使用http://localhost:3000

答案 2 :(得分:0)

您需要在facebook devloper的应用设置中更改网站网址。我希望它会对你有所帮助。

From http://127.0.0.1 to http://localhost