问题标签 [omniauth-facebook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
54 浏览

ruby-on-rails - Rails、Devise 和 Omniauth - 查看 env["omniauth.auth"] 中的内容

我已经使用设计和omniauth-facebook 建立了一个rails 项目。它有效,但我只能使用user.email =auth.info.email || ""etc访问某些信息。

我对此很陌生,尤其是 JSON,所以我想知道是否有一种快速简便的方法可以准确地查看env["omniauth.auth"]回调中返回的内容?

我已经在这几个小时了。抱歉,如果我没有提供足够的信息。

0 投票
3 回答
1521 浏览

ruby-on-rails - Rails 设计了omniauth-facebook .persisted?返回假

我花了最后一天试图解决这个问题,这让我发疯了。

昨晚,我在我的网站上使用 facebook 登录并检索基本用户信息。当我添加:scope => 'user_birthday'config/initializers/omniauth.rb现在看起来像这样时,我的问题就开始了

作为参考,我已经config.omniauth :facebook, "APP_ID", "APP_SECRET"config/initializers/devise.rb

我花了几个小时试图让它发挥作用,但最终不得不放弃。然后今天早上我再次运行它并且它起作用了。喜出望外,我试图添加另一个参数,:scope但现在整个事情又被打破了。如果我删除它,我可以让它工作,:scope但是当我把它放回去时,它每次都会失败(即使:scope => 'user_birthday'就像我今天早上第一件事一样)。

为了找到问题,我把调试代码放进去omniauth_callbacks_controller.rb,它现在看起来像:

此调试清楚地表明 facebook 正在返回必要的信息,但应用程序失败,因为.persisted?返回 false,因此我被重定向到 new_user_registration 页面,该页面返回以下内容:-

我一生都无法弄清楚为什么.persisted?返回错误。我正在使用 Nitrous.io 进行 Heroku postgresql 数据库的开发。我通过运行确认数据库中没有用户

这将返回:

我感觉问题models/user.rb出在哪里,但我不知道如何调试它以查看它是否正在寻找用户,因此不坚持或尝试创建用户并失败。有谁知道调试这个的简单方法?

我已经经历了大约 50 次,几乎要放弃了。

我唯一能想到的where(provider: auth.provider, uid: auth.uid)就是返回一些东西(它不应该因为我的数据库是空的)。我的数据库之外的某个地方是否可能存在一个索引,这就是它正在搜索的内容?

拜托,为了我的理智,有人可以帮忙吗?如果您需要更多信息,我很乐意提供

编辑 1

刚刚尝试了以下方法,它的工作原理让我比以往任何时候都更加困惑:

  1. 在我使用该帐户进行测试时,从我的 Facebook 帐户中删除该应用程序
  2. 尝试使用 facebook 登录:scope => 'user_birthday'。Facebook 将寻求的权限列为your public profile and birthday. 接受并返回到我的站点,但按照上述失败(即使信息肯定会被发回)
  3. 删除:scope => 'user_birthday'并尝试再次使用 facebook 登录。定向到 facebook,其中列出了寻求的许可your public profile and email address。接受并返回到现在可以工作的站点,并且还存储了用户生日并可以访问,因为我从上面的第 2 点获得了来自 facebook 的许可。

我现在完全不知所措

0 投票
1 回答
2478 浏览

ruby-on-rails - 如何在使用 devise 和 omniauth-facebook 时指定 facebook 图形 API 版本

我在我的 rails 4 应用程序中使用设计和omniauth-facebook 身份验证。

Facebook 已转向 v2.x 图形 API。(api 迁移的截止日期是 2015 年 4 月 30 日)。

在身份验证期间,facebook 的登录对话框显示以下消息

我认为这是因为omniauth-facebook/devise 现在使用facebook graph api v1.x。

如何将其配置为指向 v2.x ?

0 投票
1 回答
103 浏览

ruby-on-rails - 使用 Devise 和 Omniauth -rails 的 NoMethodError

我正在尝试将 Omniauth Facebook 登录与 Devise 集成到我目前处于开发早期阶段的 Rails 应用程序中。我是一个(非常)初级开发人员,我遇到了一个我不确定如何解决的障碍。

到目前为止,我已经成功地安装了 Devise gem,并成功地让 Omniauth Facebook 工作到使用 Facebook 登录应用程序的程度(通过遵循https://github.com/plataformatec/devise上的文档/wiki/OmniAuth:-Overview ) - 但是,在重定向回我的应用程序时,会显示以下错误消息:

NoMethodError in Users::OmniauthCallbacksController#facebook undefined method `name=' for # user.name = auth.info.name # 假设用户模型有名称

我认为有助于解决问题的代码片段如下:

我的用户模型:

我的路线文件:

我希望这足以帮助我诊断问题,但如果需要任何进一步的代码,请告诉我。非常感谢提前!

0 投票
1 回答
595 浏览

ruby-on-rails - 即使在使用 Devise 和 Omniauth 删除用户之后,提供程序和 uid 是否存储在某处?

使用 Devise 和 Omniauth 删除用户后,提供程序和 uid 是否存储在另一个表中?

在我的 Rails 4 应用程序中,我尝试按照设计和 Omniauth 概述指南将 Omniauth-facebook 与设计集成

我使用我的 Facebook 帐户成功登录(并创建了一个帐户)。然后作为另一个管理员用户,我删除了用于注册 Facebook 的帐户。

我尝试使用同一个 Facebook 帐户登录 Facebook(以重新创建我的帐户),这次我被重定向到常规电子邮件注册页面。

我进入我的 Rails 控制台并检查是否有任何用户使用我的 facebook 提供程序和 UID 并找到一个对象ActiveRecord::Relation

我相信当我使用 Facebook 删除我的帐户时,这个 ActiveRecord::Relation 并没有被破坏。现在它阻止我使用我的 Facebook 帐户注册。

如何删除此关系?

我的用户模型:

0 投票
0 回答
804 浏览

ruby-on-rails - Omniauth facebook 身份验证失败 应用程序 ID 无效

我正在使用omniauth-facebook gem 来授权在我的rails 应用程序中使用facebook。

我已按照这些说明进行操作,但我面临的问题是有关无效凭据的错误:

奇怪的是,即使我从 facebook api 收到此错误,我仍在获取用户信息。

request.env['omniauth.auth'] is(服务器日志)的值。

路线.rb

devise_for :users, :controllers => {:omniauth_callbacks => "omniauth_callbacks"}

配置/初始化程序/omniauth.rb

应用程序/模型/用户.rb

应用程序/控制器/omniauth_callback_controller.rb

每次响应都转到failure方法而不是 facebook 方法。

我不明白的是,当我从 api 收到无效凭据错误时,我怎么会从 facebook 获取所有数据。我怀疑在处理来自 facebook 的回调时我有什么问题。谁能指出问题出在哪里?

我很确定我使用了正确的应用程序 ID 和密钥,我在响应中从 facebook 获取数据。

有人可以帮我解决这个问题吗?

0 投票
2 回答
1582 浏览

ruby-on-rails-4 - 未定义的局部变量或方法“用户”omniauth 回调控制器

我正在尝试使用 devise 和 omniauth 实现 facebook 登录身份验证,但在回调部分出现错误。

错误是这样的......

似乎事情一直有效,直到 /auth/facebook/ 然后它上升到检索 uid 和提供者结束的部分。

我在控制器、模型和路由中的代码如下..

对于回调控制器和应用程序控制器

我的 user.rb 模型

我的 schema.rb

ActiveRecord::Schema.define(版本:20141120211712)做

我的路线.rb

最后是我的 gemfile

我真的很想在我的应用程序中使用 facebook 登录的这个功能......非常感谢您提前。我将不胜感激任何输入..

0 投票
0 回答
103 浏览

ruby-on-rails-4 - 重定向新的 Facebook 登录用户

当新用户注册我的网站时,他们会被重定向到个人教程。这目前适用于在该网站上注册的用户。但是,当新用户单击“使用 facebook 登录”时,他们会被重定向到错误的 URL(如果他们在此之前已经登录,他们将获得的 url 绕过教程)。任何人都可以帮我设置它,以便将新的 Facebook 用户重定向到教程并绕过现有的 Facebook 吗?(我安装了omniauth-facebook gem)

这是我的代码。感谢您花时间查看此内容!

用户控制器.rb

会话控制器.rb

User.rb(用户模型)

omn​​iauth.rb OmniAuth.config.logger = Rails.logger

0 投票
0 回答
527 浏览

ruby-on-rails - 在 Devise / Omniauth-facebook 身份验证后制作个人资料

我对 RoR 社区相对较新,我正试图在通过原始 Devise 或 Omniauth-Facebook 进行身份验证后为每个用户制作个人资料。在实施身份验证系统后,我有点陷入困境。

我希望你们中的一些人可以在注册/登录重定向到显示登录用户姓名的个人页面后给我一点领先和一些推动。我尝试为配置文件和视图创建新模型,但没有运气。

我的最终目标是让每个用户的个人资料页面显示用户上传的姓名、图片和一些文字......

这是我的代码行:

user.rb 用户模型

类 OmniauthCallbacksController < 设计::OmniauthCallbacksController

def 所有用户 = User.from_omniauth(request.env["omniauth.auth"])

结束 alias_method :facebook, :all end

应用控制器

路线.rb

最后gem文件

我是否需要让 rails generate devise:controllers 在登录/注册时自定义重定向?或者是否可以制作单独的控制器和模型来管理所有这些?

先感谢您!

0 投票
1 回答
372 浏览

ruby-on-rails - 为什么 ActiveModel::ForbiddenAttributesError 错误?

这是我的模型

这是我的控制器

如果有任何重复条目,我尝试查看数据库。但不是。如果您能提供帮助,请告诉我。