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

passport.js - 客户端到服务器和服务器到服务器的 REST API 身份验证

我有一个 REST api( nodejs+express+mongo) 被两种类型的用户使用:

  1. 最终用户(通过网站、使用 google-signin 的移动应用程序进行身份验证)。
  2. 将以编程方式使用 API 的网关/服务。

我的问题是关于为第二种用户处理身份验证的最佳方法是什么?用户存储在我的数据库中(使用他们的电子邮件 ID 链接到 google-signin)

最终用户创建网关和服务,因此我可以提供一个接口来管理凭据。(例如,如果我使用 API 密钥或公私密钥对,那么用户可以使用该网站添加/删除网关的凭据/服务)。

我正在使用 passport-google-oauth2 策略来处理第一种情况的身份验证。为第二种消费者处理身份验证的最佳方法是什么?

0 投票
2 回答
731 浏览

node.js - res.redirect 在护照谷歌回调中被调用两次 - 我无法追踪原因

我在 Facebook 和 Google 身份验证中都使用了 passport.js。Facebook auth 策略运行良好,回调中的 res.redirect 仅被调用一次。但是对于谷歌身份验证我很茫然,因为它被调用了两次。我花了几个小时试图调试它并查看护照源代码,但找不到错误。

我的 Google 身份验证只是从 Gmail 中获取一些联系人。

谷歌战略

从控制台这里 - 问题是 /users/?googletoken 调用被调用了两次,即使之前的 console.log 只调用了一次。

0 投票
1 回答
4344 浏览

node.js - redirect_uri 的参数值无效:缺少方案:/auth/google_auth_code/callback

编辑这是一个最小的可行项目

我正在尝试从服务器端流程的授权代码中从 Google 获取访问和刷新令牌。我在这里遵循了 Google 的指南:https ://developers.google.com/identity/sign-in/web/server-side-flow 。

我正在使用 passport 和passport-google-authcode

以下是节点应用程序的路线:

这是此策略的护照配置。

发出身份验证请求时,Google 会以以下错误响应:

这是我在 Google 控制台中的凭据设置:

在此处输入图像描述

在这一点上,我不知道还能做什么。我还尝试将 passport.use 中的回调 URL 更改为绝对 URL。我肯定会取回一个有效的身份验证代码(它看起来像:)4/Mb2pcOyhYhziROyFHKH5pnzvUldYbAmMop9SJKbBHXQ。如果我可以提供更多相关信息,请告诉我。

谢谢,
山姆

编辑

我注意到上面的 URL 以正斜杠结尾。我解决了这个问题,但我还没有更新屏幕截图。

如果我使用完整的网址(例如` http://localhost:8080//auth/google_auth_code/callback),我会收到以下错误:

如果我使用完整的网址(例如 ` http://localhost:8080/auth/google_auth_code/callback),我会收到以下错误:

0 投票
1 回答
612 浏览

node.js - 如何在nodejs中使用护照谷歌oauth强制密码

我目前正在使用护照谷歌 oauth 验证我的节点快速应用程序。目前,应用程序将询问使用哪个帐户,然后让我登录。这并不完全理想,例如,如果我在工作中使用我的应用程序,任何员工都可以访问,然后就可以访问我的应用程序。理想情况下,我希望始终在身份验证之前输入我的密码。

0 投票
4 回答
8258 浏览

node.js - 如何使passportjs google login oauth与JWT一起使用,而不是通过序列化/反序列化方法创建会话?

如果我添加创建会话的序列化/反序列化 passportjs 方法,以下代码将完美运行。我正在努力创建 Json Web 令牌,而不是会话。任何教程、建议或清晰的示例将不胜感激。我使用 nodejs。

我了解 JWT 如何工作的优缺点和基本概述。我是从以下来源了解到的。

  1. https://medium.com/@rahulgolwalkar/pros-and-cons-in-using-jwt-json-web-tokens-196ac6d41fb4
  2. https://scotch.io/tutorials/the-ins-and-outs-of-token-based-authentication
  3. https://scotch.io/tutorials/the-anatomy-of-a-json-web-token
  4. https://auth0.com/blog/cookies-vs-tokens-definitive-guide

/

没有 JWT 代码

JWT 代码尝试。问题是我需要添加序列化/反序列化,我不想这样做,因为我不想使用会话。我想要智威汤逊

代码return done(null, profile.id); // that is being serialized(added in session)就是问题所在。我应该用什么替换它以便我不必使用会话?我想用 JWT 替换它。

0 投票
1 回答
1593 浏览

oauth-2.0 - 扩展 OAuth2 Google Passport.js 策略以使用 JWT

我已经使用 JWT 设置了电子邮件和密码策略,并希望使用 Google OAuth 设置来扩展它,而不是使用 cookie。

现在,虽然两个 Google 身份验证路由工作正常,但正在我的用户集合中创建一个用户,并且我被发送回回调路由,当我尝试转到 /api/ 时,我的用户未定义current_user 路由。

这是我的代码:有什么想法吗?

index.js(入口点)

路由器.js

护照.js

编辑:Async/Await 的重构代码

0 投票
1 回答
246 浏览

node.js - 登录坚持MEAN堆栈和护照谷歌策略

我了解如何设置 Google 策略并使用会话 cookie 正常完成,但我的问题围绕着保持登录状态客户端。

如何使用会话 cookie 在客户端显示用户已登录/注销?我是否应该isLoggedIn根据每个请求的结果设置一个变量?我应该简单地检查 cookie 是否存在并设置变量,还是应该有一个 API 告诉我是否req.user不为空?

0 投票
0 回答
146 浏览

node.js - 护照-谷歌-oauth 显示错误

错误是

我在谷歌控制台上的设置

知道我做错了什么吗?

0 投票
2 回答
1033 浏览

javascript - PassportJs Google Auth2 failureRedirect 不起作用

我正在使用passport-google-oauth来验证 google 登录。几乎所有东西都工作正常,failureRedirect但当我从文件返回错误时从未调用过,config/google.js即,return done(new Error('Sorry! Your email id is not found. Please contact to Admin.'));

举例说明。请通过以下代码:-

配置/google.js

服务器.js

user.route.js

0 投票
0 回答
73 浏览

node.js - PassportJS 在成功重定向之前获取 sessionID

所以我有这个端点:

在将用户重定向到其他页面之前,我需要将他的 sessionID 保存到数据库以供以后使用。

我试过这个:

但是我不确定不包括“successRedirect”是否有任何缺点?