问题标签 [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 投票
3 回答
292 浏览

ruby-on-rails - Rails Google Oauth2 在本地工作,但不在远程工作

我已经为这个错误苦苦挣扎了一段时间,还没有完全弄清楚我做错了什么。

我的网站可以在这里找到:https ://chaynring.com

我的问题:在本地运行服务器时,我可以毫无问题地通过 Google Oauth2 进行身份验证;但是,Google Oauth2 在我的服务器(由 Heroku 托管)上失败了,我不知道为什么。

这是我的路线的粘贴箱:https ://pastebin.com/S8piCjcw

我在 Heroku 上得到的日志是:

我觉得这是我在我的应用程序中定义的中间件的东西,因为GET /auth/google_oauth2路由没有在我的 中明确定义routes.rb,但它在本地工作得很好。

有关更多上下文,这是我在本地运行时从 rails 服务器获得的输出:

有人遇到过这个问题吗?

当地路线:

Heroku 路线:

我的initializers/omniauth.rb

5/3 更新

我已经查看了我的应用程序、Google Dev Console 和 Heroku,我可能遗漏了一些非常明显的东西,但我今天能够找到一些可能有用的信息。基本上我注意到当我在本地运行我的应用程序时,我得到:

  • GET /auth/google_oauth2Location-> 302,从响应头中重定向到 Google OAuth 屏幕

但是当我在生产中尝试这个时,我根本没有得到重定向。本地和远程的代码相同,但配置不同。我的主要问题是 Heroku 和 HTTP(本地)与 HTTPS 比较奇怪?我还将我的域添加到了 Google 开发控制台,因此应该进行配置。

0 投票
0 回答
28 浏览

ruby-on-rails - 使用 gem omniauth-google-oauth2 更改 expired_at 日期

我有这个 Rails 5 应用程序,其中使用 gems 使用您的 google 帐户完成登录:

目前这是我的设置:

并查看我得到的凭据expires_at=1618943973

我希望会话持续 1 天,但我还没有找到改变它的方法。

如何更改此号码?

0 投票
0 回答
186 浏览

ruby - google-oauth2 + devise :: service.list_user_labels user_id - 错误 - Google::Apis::ClientError: 请求的身份验证范围不足

错误 -Google::Apis::ClientError: insufficientPermissions: Request had insufficient authentication scopes.

面临错误 -result = service.list_user_labels user_id在dashboards_controller.rb中的一行

以下是我的文件。

设计.rb

用户/omniauth_callbacks_controller.rb

仪表板_控制器.rb

0 投票
1 回答
163 浏览

ruby-on-rails - 谷歌omniauth rails与设计身份验证失败

我想在我的 Rails 应用程序上使用 Google 添加omniauth,但重定向后出现错误

我看到了有关错误重定向 uri 的错误,但没有看到“错误请求”

我在谷歌控制台中的重定向 uri

我的路线

宝石文件

设计

我的链接

0 投票
1 回答
102 浏览

ruby-on-rails - 在 devise_token_auth 中成功 Oauth2 授权后如何将登录信息发送到前端?

我将devise_token_auth用于电子邮件和基于 Google Oauth2 的身份验证(omniauth-google-oauth2为此使用了 gem)。我已经成功地通过 Google Oauth2 流程存储了用户注册/登录的登录信息。信息包括:

上述信息的流程是

  1. 访问 http://localhost:3000/auth/google_oauth2。这会将您重定向到 Google 身份验证屏幕
  2. 用户选择帐户并授予权限。
  3. 我的应用程序的 Oauth 成功回调在 http://localhost:3000/auth/google_oauth2/callback 执行

第一步执行的代码是

我面临的问题:

  1. sign_in@current_user尽管如此,方法调用并没有设置,@resource并且其中@auth_params包含所有必要的信息。
  2. 如何通知我的前端应用程序有关登录信息(令牌,client_id,uid)?

此调用不会重定向或呈现任何内容,而是停留在同一页面上,它显示的 URL 是 http://localhost:3000/auth/google_oauth2/callback#

我现在基本上有三个问题:

  1. 如何使用基于传入的身份验证标头devise_token_auth设置?current_user我已将以下行添加到我的控制器中,但仍然无法设置@current_user

也许是因为我错误地发送了身份验证标头?请参阅下面的第三点。

  1. 我应该如何将登录信息发送到我的前端应用程序?我是否以某种方式修改上述方法以将登录信息发送到我的前端应用程序?

  2. 为了发出经过身份验证的请求,我应该在哪里放置 auth 标头?

  • 当使用devise_token_auth电子邮件作为身份验证提供者时,我必须发送 3 件来发出经过身份验证的请求,access-tokenclient_iduid
  • 现在,对于 Google/Facebook 等提供商,我是否设置所有这些标头?

我已经使用邮递员测试了以下两项,但由于未经授权的错误而失败

  1. 已发送access-tokenclient_iduid在标头中
  2. 发送Bearer my_token授权标头。
0 投票
1 回答
174 浏览

ruby-on-rails - Rails google-oauth2 404 -“未找到。身份验证通路。”

尝试使用 Google Oauth 登录时,我遇到 404 错误“未找到。身份验证通路”。这仅在一个月前在我的网站上有效,并且我没有更改任何应该影响身份验证的内容。我已经看过其他几篇关于此的帖子,但在我的情况下似乎没有一个有效。

初始化程序/devise.rb

宝石文件

路线.rb

看法

0 投票
2 回答
244 浏览

ruby-on-rails - 我无法将我的新中间件放置在我想放置在机架堆栈中的位置

我编写了一个名为 的新中间件,它可以挽救由或RescueAuthTokenFromOmniauth所创建的异常。理想情况下,我想放在堆栈中的 Omniauth 中间件之前。OmniAuth::Strategies::GoogleOauth2OmniAuth::Strategies::FacebookRescueAuthTokenFromOmniauth

我可以RescueAuthTokenFromOmniauth通过使用添加到堆栈中

但是,例如,当我尝试这样做时,

运行时出现以下错误rails middleware

Omniauth::Strategies中间件由 gems omniauth -google-oauth2omniauth-facebook添加。

有没有办法引用OmniAuth::Strategies::GoogleOauth2application.rb以便我可以将我的新中间件放在它之前?

我正在使用导轨(6.0.3.6)。

这是运行 rails 中间件的结果。它已经包含RescueAuthTokenFromOmniauth使用config.middleware.use RescueAuthTokenFromOmniauth

这些都是关于中间件的设置application.rb

我的新中间件定义在lib/rescue_auth_token_from_omniauth.rb

我在里面添加了 OmniAuth 中间件devise.rb

这就是我的 OmniAuth 初始化程序的样子

注意:我知道现在RescueAuthTokenFromOmniauth是在Omniauth::Strategies中间件之前,所以我的功能有效。但我想明确设置它,insert_before以便清楚它应该放在Omniauth::Strategies中间件之前。

0 投票
1 回答
142 浏览

ruby-on-rails - 无法通过 GoogleOauth2 对您进行身份验证,Devise。导轨 6

我尝试在最后阶段通过 Google 和 Devise Gem 进行身份验证,我收到一条消息:无法从 Google 对您进行身份验证,因为 user@gmail.com 未经授权。因此,我无法登录

日志:

图片

0 投票
1 回答
177 浏览

reactjs - 我如何连接一个 React 按钮以使用 Devise Token Auth + OmniAuth 进行身份验证

我无法将我的 Devise Token Auth 与我从谷歌返回的令牌连接起来。

我将这个包用于按钮: https ://www.npmjs.com/package/react-google-login

这是我要设置的身份验证: https ://github.com/lynndylanhurley/devise_token_auth/blob/master/docs/config/omniauth.md

我收到了来自谷歌的响应按钮的回复,但我不知道这些信息必须如何翻译才能返回到设计身份验证。

这两种技术之间严重缺乏在线信息。它归结为如何将这个 ruby​​ 标签翻译成反应:

0 投票
0 回答
13 浏览

google-cloud-platform - Google 操作、报告状态、HomeGraph:令牌刷新/请求失败并显示 HTTP 400

2 年多以来,我们一直使用 HomeGraph API 为我们的 Google 智能家居 Action 实现 Report State。

它是根据文档https://developers.google.com/assistant/smarthome/develop/report-state设置的

现在,几天以来,我们无法再刷新或请求访问令牌。尝试时我们总是得到 HTTP 400。

这个问题是在我用我们更新的谷歌智能家居操作(尚未部署)进行测试后几天出现的,所以我可能触发了一些安全机制。