标签: omniauth

Omniauth-facebook不断报告invalid_credentials

我正在尝试按照Railscast#360中的描述实现omniauth-facebook,并遇到了相当大的障碍.当我点击登录链接时,我得到了所需的弹出窗口,要求我输入我的facebook凭据,但是当我提交时,我得到一个OmniAuth :: Strategies :: OAuth2 :: CallbackError错误.在apache日志中,打印出来:(facebook)身份验证失败!invalid_credentials:OmniAuth :: Strategies :: OAuth2 :: CallbackError,OmniAuth :: Strategies :: OAuth2 :: CallbackError

这是相关代码:

omn​​iauth.rb

OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET']
end
Run Code Online (Sandbox Code Playgroud)

sessions_controller.rb

class SessionsController < ApplicationController
  def create
    user = User.from_omniauth(env["omniauth.auth"])
    session[:user_id] = user.id
    redirect_to root_url
  end

  def destroy
    session[:user_id] = nil
    redirect_to root_url
  end
end
Run Code Online (Sandbox Code Playgroud)

application.html.erb

<div id="fb-root"></div>
<script>        
window.fbAsyncInit = function() {
    FB.init({
        appId      : '(**my app id**)', // App ID
        status     : true, // check login …
Run Code Online (Sandbox Code Playgroud)

facebook ruby-on-rails omniauth

28
推荐指数
2
解决办法
2万
查看次数

如何将localhost:3000添加到Facebook App进行开发

我正在开发一个Rails 4应用程序.在我的笔记本电脑上,开发完成了localhost:3000.该网站的实际域名是roomidex.com.

如何设置Facebook应用程序以便它适用于生产和开发?

这是当前的配置:

App Domains: roomidex.com

Website With Facebook Login: 
Site URL: http://www.roomidex.com
Run Code Online (Sandbox Code Playgroud)

当我尝试在localhost:3000上进行Facebook登录时,我发现这并不奇怪:

{
   "error": {
      "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
      "type": "OAuthException",
      "code": 191
   }
}
Run Code Online (Sandbox Code Playgroud)

facebook ruby-on-rails omniauth ruby-on-rails-4

28
推荐指数
2
解决办法
3万
查看次数

在Rails应用程序中使用Omniauth-oauth2刷新令牌

我在rails中使用omniauth-oauth2来验证支持oauth2的站点.做完oauth之后,该网站给了我以下内容,然后我将其保存到数据库中:

  1. 访问令牌
  2. Expires_AT(滴答)
  3. 刷新令牌

是否存在omniauth方法在令牌过期后自动刷新令牌,还是应该编写自定义代码来执行相同操作?

如果要编写自定义代码,帮助程序是编写逻辑的正确位置吗?

ruby-on-rails oauth oauth-2.0 omniauth ruby-on-rails-4

28
推荐指数
4
解决办法
1万
查看次数

OmniAuth:防范同一用户的多个帐户

我有几个Rails应用程序,我正在寻求与OmniAuth集成,但我有一个概念性的问题,我想先找出来.请考虑以下情形:

  1. 您的应用程序Foo通过Twitter和Facebook支持OmniAuth登录.
  2. 乔来到您的网站并通过他的Twitter帐户登录.这将在Foo上创建一个新用户并将其与此新Twitter授权相关联.
  3. Joe退出了Foo,并忘记了该网站六个月.
  4. 乔回到Foo,不记得他之前登录过Twitter.
  5. 乔登录Facebook.由于他还没有通过他原来的Twitter授权登录,因此无法检测到他实际上是同一个Joe,并且创建了一个新帐户.
  6. Joe发现了他的旧帐户,现在感到沮丧的是他的旧内容与这个旧帐户绑定,并且他不能互换地使用Twitter和Facebook登录.

由于Twitter不向Foo提供电子邮件地址,因此没有通用标识符可用于检测两个Joes是同一个Joe.您可以决定仅支持向您提供用户电子邮件地址的提供商,但如果用户在不同提供商处注册了不同的电子邮件地址,则无效.

我能想到的唯一其他解决方案是为用户提供一些合并两个现有帐户的方法.与使用OmniAuth时其他一切相对容易相比,这是一个令人头疼的问题.如果这是唯一的解决方案,是否有人遇到指导/教程,展示如何做到这一点的示例?鉴于OmniAuth的受欢迎程度,我对这个问题没有得到更多关注感到惊讶.

谢谢!

ruby-on-rails omniauth

27
推荐指数
2
解决办法
2992
查看次数

路由错误未初始化的常量用户

我是一个铁杆新手...我正在尝试设置登录Facebook的演示应用程序.我正在使用OmniAuth并遵循本教程

https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview

重定向到fB时出现此错误:

   Routing Error:

    uninitialized constant Users

    Try running rake routes for more information on available routes. 
Run Code Online (Sandbox Code Playgroud)

环境

Windows 7
Rails version :3.2.9.rc2
omniauth-1.1.1
devise-2.1.2
Run Code Online (Sandbox Code Playgroud)

我的routes.rb看起来像这样:

  root :to => 'static_pages#home'
  resources :users
  get "static_pages/home"
  match '/auth/facebook' => 'omniauth#passthru'
  match '/users/auth/facebook' => 'users/omniauth_callbacks#passthru'
  devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } , :strategy_class => OmniAuth::Strategies::Facebook
Run Code Online (Sandbox Code Playgroud)

devise.rb包含:

require 'devise/orm/active_record'
require 'omniauth-facebook'

config.omniauth_path_prefix = "/users/auth"
  config.omniauth :facebook, "ABC", "XYZ",{:client_options => { :ssl => { :verify => false } }} 
Run Code Online (Sandbox Code Playgroud)

OmniAuthController包含:ie app/controllers/omniauth_callbacks_controller.rb …

facebook ruby-on-rails devise omniauth ruby-on-rails-3.2

27
推荐指数
1
解决办法
3万
查看次数

设计Omniauth和Iphone/Android应用程序

我已经使用Devise和Omniauth为我的rails应用程序设置了用户身份验证.现在我想知道我应该在哪里开始为我想要创建的Android和iPhone应用程序使用相同的auth.

我应该使用我的/ auth/facebook的移动版本,还是应该直接从应用程序发送请求?

这是一个相当普遍的问题,但我发现无处可寻.

编辑:我刚刚向应用程序添加了Token Auth以与RESTful api一起使用,我只是错过了Omniauth/Facebook-token部分.

iphone android ruby-on-rails devise omniauth

25
推荐指数
1
解决办法
8703
查看次数

Omniauth-twitter与Rails 5停止工作!OAuth ::未经授权403禁止使用

一切都很好,Omniauth突然停止了工作.我没有进行任何代码更改.

我检查了Twitter应用程序设置:我有回调网址到我的主要生产网址,并且回拨网址已锁定为否.所有密钥都是正确的.

任何的想法?


的OAuth ::未经授权

403禁止

在此输入图像描述

ruby-on-rails devise omniauth ruby-on-rails-5 omniauth-twitter

25
推荐指数
2
解决办法
2412
查看次数

在localhost上进行Omniauth Facebook身份验证

我正在尝试按照此Railscast中的描述设置Omniauth .虽然它适用于Twitter,但我无法让它与Facebook合作.我还将' http:// localhost:3000 '设置为siteurl,将'localhost'设置为域,但仍然在浏览器中看到以下错误消息:

Invalid redirect_uri: Given URL is not allowed by the Application configuration.
Run Code Online (Sandbox Code Playgroud)

你们有没有人对如何解决这个问题有任何建议?提前致谢.

facebook ruby-on-rails localhost omniauth

22
推荐指数
4
解决办法
2万
查看次数

Facebook令牌到期和更新,与考拉和omniauth-facebook

我正在编写一个Rails应用程序,该应用程序使用omniauth-facebook来针对FB对用户进行身份验证(以及为用户获取FB OAuth访问令牌).然后,应用程序使用Koala使用保存的OAuth令牌对FB Graph API进行各种调用.

每次用户重新进行身份验证时(通常在他们登录我的应用程序时),我都会更新已保存的令牌.即便如此,保存的令牌也会不时到期(或以其他方式变为无效).

在使用考拉时,防止身份验证失败和更新令牌的最佳做法是什么?

是否所有调用都包含在begin/rescue块中,并使用异常处理程序对FB进行重新验证?

是否有某种方式(使用Koala)来利用此处描述的"扩展访问令牌"流程?如果没有,是否有编写自己的代码以从Koala调用中自己提取新令牌的最佳实践?

ruby-on-rails omniauth koala

22
推荐指数
2
解决办法
8058
查看次数

从facebook中获取用户个人资料大图片,并在设计2.0中使用omniauth

我想从Facebook获取用户个人资料大图或普通图片.现在我使用以下代码从用户个人资料图片中获取方形版本:

:image => access_token.info.image
# http://graph.facebook.com/id/picture?type=square
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得大版或普通版?

或者和应用程序,我怎么能在这个网址中替换最后一个字,大而不是方形......

非常感谢你!

facebook ruby-on-rails facebook-graph-api omniauth ruby-on-rails-3

22
推荐指数
2
解决办法
1万
查看次数