问题标签 [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 回答
89 浏览

ruby-on-rails - 无法使用 Ruby on Rails、Devise、Omniauth 在 Google 和玩具网站之间设置简单的 OAuth2

我正在尝试通过构建一个小型 Web 应用程序来学习 Ruby on Rails。我的第一步是从 OAuth 登录开始,以便用户可以使用 Facebook、Google 等登录。但是当我转到/users/sign_up本地主机上的设计页面并单击使用 GoogleOauth2 登录时,它“什么都不做”,控制台告诉我:

我已经设置了 devise 和 omniauth-google-oauth2,并在 Google 开发人员控制台中注册了一个应用程序,将适当的回调 uris 添加为http://127.0.0.1:3000/users/auth/google_oauth2/callbackhttp://localhost:3000/users/auth/google_oauth2/callback,并使用 dotenv gem 将密钥和秘密写入 .env 以读取它们,运行服务器与dotenv rails server.

我想了解这里出了什么问题,为什么,我将如何调试它,以及如何修复它,以便通过谷歌登录将我带到我的主页,“耶!你在轨道上!” 屏幕。

我的文件是这样设置的:

路线.rb:

应用程序/模型/users.rb:

应用程序/配置/初始化程序/devise.rb:

应用程序/控制器/用户/omniauth_controller.rb

应用程序/配置/初始化程序/session_store.rb:

请让我知道是否需要进一步澄清来调试此问题。

0 投票
0 回答
15 浏览

ruby-on-rails - 使用 OmniAuth 进行设计和第 3 方授权的自定义字段为空白

在使用 OmniAuth 进行 3rd 方登录之前,我的设计工作正常,基本上是自定义字段 name 和 last_name 在尝试定期注册时出错,因为 cannot be blank,但它们的值不是 blank

这是我在第 3 方授权之前拥有的代码:

现在怎么样了:

PS:如果我将路线返回到原来的,常规注册工作,但第 3 方没有

0 投票
0 回答
125 浏览

ruby-on-rails - 验证失败!invalid_credentials:OAuth2::Error,invalid_grant:错误请求,Ruby on Rails

在 docker 上部署我的 ruby​​ on rails 应用程序时遇到奇怪的问题

当我完美地运行localhost所有工作时,但是当deploy on docker我收到此错误时。

我用了几天来解决这个问题但没有成功,有人可以帮我解决这个问题吗?

这是我得到的日志:

这是码头文件

我的宝石文件

这是 devise.rb 中的配置

这是我的 OmniauthCallbacksController

0 投票
0 回答
20 浏览

firebase - 谷歌登录不适用于快递和护照

服务器.js

护照.js

在上面的谷歌用户详细信息中成功来自谷歌。

用户路由.js

在上面的用户被成功重定向到前端。/登录成功

不工作:前端:[https://goodtube-new.web.app] 后端:[https://goodtube-server.herokuapp.com]

问题:无法在客户端上添加登录会话。(表达:会话)。重定向后无法在服务器上授权客户端,似乎没有创建视觉。

工作:它在这里工作:[http://goodtube1.herokuapp.com],其中前端和后端位于同一来源或域。

0 投票
0 回答
33 浏览

security - 信任来自 oauth(ssl 端点)的电子邮件的安全隐患

我正在使用带有 omniauth-google-oauth2 的设计来验证我网站的用户。如果我请求电子邮件和配置文件范围,我会收到一个响应,其中包括用户电子邮件以及指示电子邮件是否已验证的字段。

如果谷歌说他们的电子邮件已经过验证并且它与我的数据库中的一个帐户匹配(或者如果一个帐户尚不存在,则创建一个帐户),我想直接登录用户。

但是,我注意到其他人似乎让您记住上次登录时使用的服务。仅信任谷歌报告的电子邮件是否存在某种安全隐患(这不是银行应用程序,所以我只想确保有人不能 MITM 回复并更改电子邮件)?请注意,回调 url 需要 https,但我担心有人仍然会中断该连接,然后重新连接并用不同的值替换电子邮件等。

如果这是一个问题,有什么方法可以让用户以安全的方式从谷歌和其他 oauth/openID 提供商那里获取电子邮件,这样用户就不需要记住他们使用的是哪个提供商?

--

我一直在尝试弄清楚omniauth使用的流是否仅通过浏览器重定向获取信息,或者通过直接从服务器的oauth提供者发出请求来交换初始令牌。我认为后者可能是安全的,但我不确定。

0 投票
0 回答
17 浏览

google-chrome-extension - 如何让用户使用 launchWebAuthFlow 保持登录状态?

在我的 Chrome 扩展程序中,我使用launchWebAuthFlow通过他们的 Google 帐户对用户进行身份验证:

初次登录后,我可以使用interactive: false自动再次登录用户。但在浏览器完全关闭后,他们必须再次以交互方式登录。 我必须自己实现刷新令牌逻辑吗?