问题标签 [passport-google-oauth]

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

node.js - MERN OAuth 实现不会重定向到谷歌登录页面

我目前正在使用 MERN 堆栈运行网络服务器,并且正在尝试使 OAuth 登录正常工作。但是,当我单击“使用 google 登录”按钮时,react 会加载主页(但 URL 会更改)。直接获取 URL 会从服务器获得 302 响应,但我的前端没有改变。

服务器.js

路由(不同文件夹中有几个索引文件,所以这条路由的完整路径吧/api/user/google

Passport.js

前端登录页面(有一个获取按钮和一个链接按钮。如上所述,不同的行为)

更新:看起来像是某种 CORS 问题,尽管我仍然不知道如何解决它。浏览器吐出来

添加请求的标头给了我

0 投票
2 回答
1358 浏览

node.js - 当只有 1 个 google 帐户登录时,Passport Google Oauth2 不提示选择帐户

我正在尝试在我的 node + nestjs api 中对用户进行身份验证,并希望提示用户选择一个帐户。

如果您只有 1 个帐户登录,则提示不会显示,即使您使用 2 个帐户登录并收到提示,重定向中的 URL 参数中仍然有 &prompt=none。

事实上,我可以确认提示选项没有任何区别。

我的代码简化如下:

我怎么可能进一步调试它以查看引擎盖下为什么/发生了什么?

实际端点:

我无法使用任何警卫或 UseGuards 装饰器传递选项对象。

我还尝试将一个额外的对象参数传递给超级调用,但这也不起作用。

0 投票
1 回答
1013 浏览

node.js - 由于同意屏幕,无法创建 Google oAuth clientId

我正在尝试获取 Google oAuth clientId,但它说:

To create an OAuth client ID, you must first set a product name on the consent screen

在此处输入图像描述

因此,当我单击配置同意屏幕时:

在此处输入图像描述

在我的应用程序中,我使用的是 passport.js 和谷歌的 oAuth20。我的应用程序可以让任何人使用谷歌帐户登录。为此,我需要clientId.

但它说选择InternalExternal选择。我不知道这是什么。同意屏幕以前不存在。

我该怎么办?

0 投票
1 回答
631 浏览

typescript - 在单独的文件中定义护照策略并在整个应用程序中使用它

我已经尝试了很长时间,但我似乎无法理解它是如何工作的。

我有一个passport.ts文件大致定义为:

在项目的根目录中,我有一个index.ts标准护照初始化:

我通过 express 的 Router 函数在不同的文件中定义控制器,其中之一authenticate.ts大致遵循以下几行:

我知道我错过了回调路由,但是我在完成这项工作时遇到了问题,因为我不确定在 passport.ts 中定义的具有策略的护照对象如何在不同的文件中使用。

任何帮助都会很棒!

0 投票
1 回答
240 浏览

node.js - NodeJS - 有没有办法使用 Google API 获取当前登录的用户?

是否可以从 refreshToken、accessToken 或通过类似于此Retrieve profile information for a signed-in user in NodeJS 的方法获取当前登录用户(电子邮件、姓名等)?

0 投票
1 回答
449 浏览

node.js - enableProof 在 passportjs OAuth 2.0 中做了什么?它是否启用pkce?

我想实现 oAuth2.0,但在阅读了 oAuth 2.0 之后,我的理解是它应该使用授权码授权类型并且还应该使用 PKCE。我正在使用 passportJs 来实现 oAuth2.0,但同时,我不想要任何安全漏洞的安全问题。我知道 passportJs 使用默认的授权码授权流程。但我也想用它来实现 PKCE。护照在他们的文件中提到enableProof: true。这是否启用 PKCE?

0 投票
1 回答
33 浏览

javascript - 护照和服务文件nodejs

我正在使用带有谷歌策略的护照进行身份验证

我的文件夹结构:

  • 意见
    • 主页.html
    • enter.html(这只有一个 google+ 按钮
  • 应用程序.js
  • 路线
    • auth.js(用于谷歌登录

我希望客户端被定向到 enter.html 并且如果未设置 req.user 则无法使用 home.html (当用户使用 google 进行身份验证时设置了 req.user )

完成身份验证后,应将用户重定向到 home.html

app.use(express.static()) 使它们都可用,这不是我想要的

google 登录页面来自 auth/google

我还需要知道我应该保留什么作为回调 uri

在 app.js 中

  1. 我已经完成了mongodb配置

  2. 我已经完成了护照配置

接下来做什么?

在 auth.js 中

0 投票
1 回答
170 浏览

node.js - 使用 Google OAuth api 时如何摆脱“此应用未验证”警告?

我正在尝试使用 node.js 中的 passport-google-oauth 包实现 Google 身份验证。当我尝试使用 gmail 帐户注册时,它显示“此应用程序未验证”。请看图片。在此处输入图像描述但是当我点击“高级”然后选择继续时,它工作正常。在我的范围内,我有这些领域

这是我的 Google OAuth 同意屏幕的样子:在此处输入图像描述

我在 Google OAuth 同意屏幕中的验证状态是否存在问题?任何帮助,将不胜感激。谢谢

0 投票
0 回答
354 浏览

graphql - 在服务器 - 客户端应用程序中使用 passport-google-oauth2 身份验证

我有一个与 mongodb 数据库连接的 TypeOrm/React 应用程序,其中服务器位于端口 4000,客户端位于端口 3000。在客户端上,我创建了文件 googleAuth:

我的 index.ts(server) 文件如下所示:

我的用户解析器:

在凭据的https://console.developers.google.com中,我添加了授权的 JavaScript 来源:http://localhost:4000

在授权重定向 URI 中:http://localhost:4000/auth/google/callback

我可以登录,但我无法获取任何数据。我知道这是非常混乱的代码,但我需要组织它并重写它。首先,我想知道我应该在我的凭据中添加哪些域和重定向。二是配置服务器。第三个是创建 UserResolvers。第四,与客户端获取数据。

0 投票
0 回答
163 浏览

javascript - 在护照谷歌身份验证策略中使用 res.redirect 时出错

路由.js

我正在使用谷歌策略并且它工作正常,但是如果我使用 res.redirect() 将它重定向到某个 URL,那么它会显示错误“在发送到客户端后无法设置标题”。认证成功后,我想返回信息并将其重定向到网站。任何帮助将不胜感激