问题标签 [omniauth-twitter]

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 回答
78 浏览

ruby-on-rails - 自定义 OmniAuth 配置 Ruby on Rails

在此处遵循本教程。

我在查找有关我要完成的工作的任何信息时遇到问题。

我目前使用自定义用户身份验证设置了我的 Rails 应用程序。用户在数据库中还有一个角色字符串,用于确定他们在应用程序中看到和可以做的事情。

在注册表单中,用户可以输入姓名、电子邮件地址、用户名和密码。并且还必须选择他们的用户角色。

我的目标是让我的注册表单与 twitter 和 facebook omniauth。当他们单击使用 twitter 或 facebook 创建帐户时,我希望用户能够选择他们的角色。当前的omniauth 配置我对如何添加自定义选择有点困惑。无论如何,通过链接 twitter 或 facebook 帐户来确保用户在创建帐户之前选择一个角色。

任何帮助都会很棒,谢谢。

0 投票
1 回答
251 浏览

json - 尝试使用omniauth从Twitter API登录用户时,SessionsController#create中的TypeError

我试图允许用户通过 Twitter 登录,但出现错误:在 SessionsController 中键入错误。每当我被重定向到: https ://api.twitter.com/oauth/authenticate 时,我都会收到此错误,因此可以对用户进行身份验证。经过身份验证后,我应该被重定向到 Twitter“授权应用程序”页面,但我收到了完整的错误:“SessionsController#create 中的 TypeError:预期的异常类/对象”。我正在使用 omniauth_twitter 并为此功能设计 gems。我是否错过了在 routes.rb 文件中设计时需要做的事情?

它还通过创建方法(在 SessionController 中)实现它,因为它最终重定向到根页面,但我没有看到在数据库中创建的用户。

会话控制器

用户模型

路由.rb

此外,用户未在数据库中显示,应将其保存下来

0 投票
1 回答
563 浏览

ruby-on-rails - 如何在不重定向的情况下从 OmniAuth 提供程序获取身份验证 URL

当您访问 OmniAuth 时如何获得重定向到的 URL /auth/twitter

我正在构建一个 API 服务器,只想将 JSON 中的 URL 传递给客户端,以便它可以对 URL 做任何需要的事情。

我认为我想要的是策略的结果,request_phase因为它看起来是 auth URL,但是我如何在新的控制器中得到它,以便我可以做到:

有没有一种干净的方法可以做到这一点?

0 投票
0 回答
28 浏览

ruby-on-rails - 我无法弄清楚 Heroku 日志中出错的原因

我的 Heroku 日志如下图所示。我无法弄清楚出了什么问题。请帮忙 :(

Heroku 日志

0 投票
1 回答
138 浏览

ruby-on-rails - RoR Twitter API oAuth:“无法对您进行身份验证。”

我尝试将我的应用程序连接到 Twitter API。我不确定,但我认为我的问题来自 oauth_signature。所以我阅读了这份文档:https ://dev.twitter.com/oauth/overview/creating-signatures

我想我做了他们说的一切,但它不起作用,我不知道为什么。

这是我的代码:

由于我的代码,我创建了一个 URL 示例:

https://api.twitter.com/1.1/statuses/user_timeline.json?oauth_consumer_key=xxx&oauth_nonce=4f8f5638b6aa6e132&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1487703144&oauth_token=15028214-zk3HGlrA7zYOv2DGasrL9MJMXNqFsk1g6q4TEOS9V&oauth_version=1.0&oauth_signature=iNVkhyCCFBXP2He6LfCFL0ukwxQ%3D

提前感谢任何能给我一个想法的人!

PS:当然我在这里用“xxx”替换了consumer_key和secret_key

0 投票
1 回答
419 浏览

ruby-on-rails - 使用带有 devise 和 rails 5 的 omniauth-twitter gem

我开始观看 Ryan Bates关于如何将 Omniauth 与设计一起使用的教程(rails-cast 235 已修订)。我遇到了 user.rb 文件的问题。他在教程中展示的内容

对我不起作用,它显示一个 ActiveModel::ForbiddenAttributesError 并where(auth.slice(:provider, :uid)).first_or_create do |user|突出显示这行代码。我认为他的版本不起作用,因为我使用的是 Rails 5。无论如何我已经尝试修改 user.rb 文件。使用以下代码。

我能够让 twitter auth 页面显示加载大约一分钟,然后在不登录且不显示任何错误消息的情况下重定向回我的用户注册页面。顺便说一句,有人知道如何使用 devise 登录 facebook。

0 投票
3 回答
233 浏览

ruby-on-rails - 找不到 Devise::OmniauthCallbacksController 的操作“twitter”

我正在尝试将 twitter 与我的 rails 应用程序中的设计集成。

但是,我收到此错误找不到 Devise::OmniauthCallbacksController 的操作“twitter”

我的路线文件包含:

我已经看到了一些线程,但不太能够解决这个问题。请帮忙。这是我的控制器

结尾

0 投票
1 回答
107 浏览

ruby-on-rails - Rails 5 Devise 和 OmniAuth Twitter 设置在授权应用程序后重定向到登录表单

我正在尝试将OmniAuth-Twitter安装在我的Devise之上。我正在关注本教程https://www.youtube.com/watch?v=X6tKAUOMzCs&t=42s但我遇到了一个我无法在线找到的错误。实际上这不是错误,在我从 Twitter 授权应用程序后,它会重定向到我的登录表单!

全域认证.rb

路线.rb

omn​​iauth_callbakcs_controller.rb

设计.rb

用户.rb

我放置了 user_twitter_omniauth_authorize_path链接到我的视图。

  1. 它重定向到 Twitter 授权页面 ✅</li>
  2. 我从 Twitter 授权应用程序✅</li>
  3. 我希望它会引发request.env["omniauth.auth"]但它会重定向到localhost:3000/users/sign_in我在此处看到登录表单❌</li>

它就像跳过我的omniauth_callbacks_controller,我将在其中写入保存到数据库代码,我错过了什么?谢谢吨!


++++++++++++++++++++++++更新++++++++++++++++++++++++

我刚刚在omniauth_callbakcs_controller.rb 中添加了def failure,我看到该应用程序正在为此而努力。

在此处输入图像描述 因此,出于某种原因,该应用程序正在跳过我的def Twitter

0 投票
1 回答
62 浏览

ruby-on-rails - Omniauth Twitter 注册会接管现有的 Devise 用户记录(如果有相同的用户名),而不是停止使用用户名的注册存在错误

我正在使用 Devise (form) 和 Omniauth Twitter。我的注册表单字段是:

  • 用户名(唯一,必填)
  • 电子邮件(唯一,必填)
  • 全名
  • 密码

当没有具有相同用户名的现有记录时,两个注册都可以正常工作。用户可以通过 Twitter 或电子邮件表格进行注册。

问题是:

如果用户尝试使用现有用户名通过表单注册,则不允许。没关系。

但是当用户尝试通过 Twitter 注册并且如果 Twitter 昵称(我网站中的用户名)已经存在,它不会阻止注册,它会将现有帐户转移到新注册的 Twitter,它会使用来自的那些更新现有用户详细信息Twitter 个人资料 (API) 。我怎样才能阻止它?

谢谢!


omn​​iauth_callbacks_controller.rb


设计师.rb


控制器/registrations_controller.rb


设计/注册/new.html.erb

从这里我重定向到配置文件编辑以获取其他配置文件信息,即设计器/edit.html.erb

0 投票
1 回答
380 浏览

ruby-on-rails - Rails - 设计 - Twitter 和 Instagram 没有重定向到我的回调 url

我正在使用 Devise 和 Omniauth 对社交媒体进行用户身份验证。我将以下内容添加到我的config/initializers/devise.rb

在我的app/controllers/omniauth_callbacks_controller.rb

app/models/users.rb我补充说:

我还配置了社交媒体应用程序(或客户端)以重定向到https://<my domain name>/users/auth/<social media>/callback

现在,我可以使用 Facebook 和 Google 登录。然而 Twitter 重定向到:

Instagram 重定向到:

使用 JSON 响应:

注意:我在 Twitter 应用中输入的回调 url 是https://<my domain>/users/auth/twitter/callback

我在我的 Instagram 客户端中输入的重定向 uri 是https://<my domain>/users/auth/instagram/callback

我将 Instagram 线路更改config/initializers/devise.rb为:

但是,身份验证也会重定向到: