问题标签 [omniauth-google-oauth2]

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

ruby-on-rails - 如何配置使用omniauth-google-oauth2返回的图像大小?

我尝试在我的 Rails 应用程序中配置omniauth-google-oauth2with :devise

这项工作,但我尝试将 image_size 配置为更大:

或者

基于this documentation,它不起作用,它总是返回图像网址,如https://lh4.googleusercontent.com/-zE4TdSazXvI/AAAAAAAAAAI/AAAAAAAAACA/jWRW9BtDAlU/s128-c/photo.jpg?sz=50

这个问题是在Rails 设计中提出的,omniauth-google-oauth2 图像大小不能正常工作,但没有结果!

不要告诉我写这种硬代码:

还有另一种方法可以实现这一目标吗?

0 投票
0 回答
303 浏览

ruby-on-rails - OAuth2::Error redirect_uri_mismatch 使用omniauth-google-oauth2 gem

我收到此错误:OAuth2::Error redirect_uri_mismatch

这就是我根据omniauth-google-oauth2 的文档设置omniauth.rb 的方式。

这就是我设置 routes.rb 来处理回调的方式:

这是我的 Google Developer Console 的屏幕截图,我将授权的重定向 uri 设置为http://localhost:3000/auth/google_oauth2/callback.

我已经尝试过它和http://localhost:3000其他几种变体一样。httpshttp://localhost/auth/google_oauth2/callback

有人说控制台可能需要一段时间才能更新,所以我想知道我是否有可能在某个时候尝试了正确的事情并且没有给它足够的时间(超过 5 分钟?)来更新。

Facebook 的回调(http://localhost:3000/auth/facebook/callback在 Facebook 开发人员控制台上)有效,将我一直带到 SessionsController 的 #create 操作,我还没有添加处理它的方法,所以它在那里抛出了一个错误。

谁能发现我做错了什么!?

0 投票
1 回答
344 浏览

ruby-on-rails - Omniauth 重定向回登录页面

因此,我尝试将 Google OAuth2 与我的应用程序中的设计集成,但在登录并允许访问该应用程序后,由于某种原因,我被重定向回登录页面。我正在使用以下教程:

https://www.digitalocean.com/community/tutorials/how-to-configure-devise-and-omniauth-for-your-rails-application

这是我的文件:

callbacks_controller.rb

路线.rb:

用户.rb:

设计.rb:

我究竟做错了什么?谢谢

0 投票
0 回答
285 浏览

ruby-on-rails - Rails Omniauth Facebook 通过 API 登录

我有一个完全运行的 Rails 应用程序。我正在使用 Devise、Omniauth、Omniauth Google 和 Facebook 登录 vai Facebook 和 Google,并且工作正常。

我正在为此应用程序构建移动应用程序。对于移动设备上的身份验证,我使用的是 JWT-rails gem,我能够登录、注销和浏览该站点。

所以,我也需要在移动设备上添加使用 facebook/google 选项的登录,但我很困惑如何制作 API 来实现目标。请建议我最好的选择。

0 投票
0 回答
901 浏览

ruby-on-rails - 带有 Devise、omniauth-google-oauth2 和 omniauth-linkedin-oauth2 的 Rails 身份验证失败

我正在使用omniauth-oauth2, omniauth-google-oauth2, omniauth-linkedin-oauth2, omniauth-facebook, omniauth-twittergems 对托管在 aws ec2 中的基本 rails 应用程序进行身份验证。Facebook 和 Twitter 身份验证工作正常,但使用 Linkedin 和 google+ 进行身份验证时呈现消息“未找到。身份验证通路”。Facebook 和 Twitter 工作正常。请帮助我解决问题。非常感谢任何帮助。

提前致谢。

宝石文件

设计.rb

用户/omniauth_callbacks_controller.rb

用户.rb

路线.rb

谷歌开发者帐户中我的应用程序站点的回调 URL:

也试过

在linkedin开发者帐户中我的应用程序站点的回调URL:

甚至尝试使用 OAuth 1.0a 默认“接受”重定向 URL:

0 投票
1 回答
362 浏览

ruby-on-rails - 使用 Omniauth Google 验证的路线

我正在尝试/me使用omniauth-google-oauth2制作经过身份验证的路由。到目前为止,我已将库设置为登录和注销,并且工作正常。但是,我希望只有在用户登录时才能访问某些路由。我找到了这个片段并进行了一些小的更改以适应我的设置。

application_controller.rb

用户.rb

我使用env["omniauth"]了因为那是我在我的SessionsController.

但是,现在每当我去 时localhost:3000,我都会收到以下错误:

我假设发生这种情况是因为env["omniauth.auth"]无法从application_controller.rb? 如果是这种情况,那么我该如何正确访问身份验证哈希?

0 投票
1 回答
722 浏览

ruby-on-rails - 重定向 uri 不匹配。使用 Ruby on Rails 登录 Google

我正在尝试使用omniauth-google-oauth2gem 将 Google Login 添加到我的应用程序中。

我已经创建了客户端 ID 和密码,console.developers.google.com并添加了 redirect_uri,如下所示。

在此处输入图像描述

路线.rb

宝石文件

我在登录时遇到了问题。它正在通过 Google 进行身份验证并且无法重定向。错误如下。

0 投票
1 回答
1329 浏览

ruby-on-rails - nil 的未定义方法“提供者”:NilClass、RSpec、OmniAuth

我正在尝试使用 RSpec 和 OmniAuth 测试经过身份验证的控制器。我遵循了他们 wiki 上的集成测试指南。当我运行测试时,我收到以下错误:

本要点中提供了所有相关代码。我的预感是没有以某种方式设置模拟身份验证哈希,但我无法验证这一点。我在 Gist 中配置了 OmniAuth config/environments/test.rb,我很确定该文件在应用程序启动时运行。

0 投票
1 回答
678 浏览

ruby-on-rails - 成功登录后,Rails 4 中的 OmniAuthGoogleOAuth2 重定向到原始请求 url

根据文档,我实现了身份验证。这是我的application_controller.rb

我正在使用这个“登录”链接

路线:get 'auth/:provider/callback', to: 'user_sessions#create'

控制器:

现在,当我没有有效的会话尝试去时,localhost:3000/privileged我被重定向到根 URL,登录链接是这样的:

但是,当我单击它时,我会成功登录,但随后会出现无法重定向到 nil 的错误。为什么要删除参数?或者有没有更好的方法在成功登录后将用户重定向到最初请求的 URL?

0 投票
1 回答
457 浏览

ruby-on-rails - Rails Gem 'omniauth-google-oauth2' 是否安全/request.env 如何工作?

我已经使用https://github.com/zquestz/omniauth-google-oauth2上给出的示例模式在我的 rails/devise 应用程序中实现了“omniauth-google-oauth2”gem 。但是,我担心这种模式不安全。

我试图查看 git hub 上的源代码,以及https://developers.google.com/identity/sign-in/web/devconsole-project上的官方谷歌文档,但是我无法说服自己模式是安全的。

从谷歌文档,流程应该是这样的:

谷歌 OAuth 流程

我的安全问题在于对 request.env 的工作原理没有深入了解。

问题 1:用户可以设置 request.env 值(例如,使用 cURL 请求之类的东西)吗?

问题 2:如果是这样,是什么阻止了恶意用户点击应用程序的omniauth 回调端点并设置 request.env 的值以便他们可以冒充另一个用户?例如,在 github 上显示的示例中,控制器中的回调端点是:

类用户::OmniauthCallbacksController < 设计::OmniauthCallbacksController

def google_oauth2

结尾

结尾

问题 3:我的 rails 应用程序服务器(我正在使用 puma)似乎没有记录图中第 5 步的请求(交换代码以获取令牌)。我在 Chrome 中无法从用户的角度看到这一点,因为用户没有参与该通信。我怎样才能看到/记录/验证呼叫正在发生?