问题标签 [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.
passport.js - 客户端到服务器和服务器到服务器的 REST API 身份验证
我有一个 REST api( nodejs+express+mongo) 被两种类型的用户使用:
- 最终用户(通过网站、使用 google-signin 的移动应用程序进行身份验证)。
- 将以编程方式使用 API 的网关/服务。
我的问题是关于为第二种用户处理身份验证的最佳方法是什么?用户存储在我的数据库中(使用他们的电子邮件 ID 链接到 google-signin)
最终用户创建网关和服务,因此我可以提供一个接口来管理凭据。(例如,如果我使用 API 密钥或公私密钥对,那么用户可以使用该网站添加/删除网关的凭据/服务)。
我正在使用 passport-google-oauth2 策略来处理第一种情况的身份验证。为第二种消费者处理身份验证的最佳方法是什么?
node.js - res.redirect 在护照谷歌回调中被调用两次 - 我无法追踪原因
我在 Facebook 和 Google 身份验证中都使用了 passport.js。Facebook auth 策略运行良好,回调中的 res.redirect 仅被调用一次。但是对于谷歌身份验证我很茫然,因为它被调用了两次。我花了几个小时试图调试它并查看护照源代码,但找不到错误。
我的 Google 身份验证只是从 Gmail 中获取一些联系人。
谷歌战略
从控制台这里 - 问题是 /users/?googletoken 调用被调用了两次,即使之前的 console.log 只调用了一次。
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),我会收到以下错误:
node.js - 如何在nodejs中使用护照谷歌oauth强制密码
我目前正在使用护照谷歌 oauth 验证我的节点快速应用程序。目前,应用程序将询问使用哪个帐户,然后让我登录。这并不完全理想,例如,如果我在工作中使用我的应用程序,任何员工都可以访问,然后就可以访问我的应用程序。理想情况下,我希望始终在身份验证之前输入我的密码。
node.js - 如何使passportjs google login oauth与JWT一起使用,而不是通过序列化/反序列化方法创建会话?
如果我添加创建会话的序列化/反序列化 passportjs 方法,以下代码将完美运行。我正在努力创建 Json Web 令牌,而不是会话。任何教程、建议或清晰的示例将不胜感激。我使用 nodejs。
我了解 JWT 如何工作的优缺点和基本概述。我是从以下来源了解到的。
- https://medium.com/@rahulgolwalkar/pros-and-cons-in-using-jwt-json-web-tokens-196ac6d41fb4
- https://scotch.io/tutorials/the-ins-and-outs-of-token-based-authentication
- https://scotch.io/tutorials/the-anatomy-of-a-json-web-token
- https://auth0.com/blog/cookies-vs-tokens-definitive-guide
/
没有 JWT 代码
JWT 代码尝试。问题是我需要添加序列化/反序列化,我不想这样做,因为我不想使用会话。我想要智威汤逊
代码return done(null, profile.id); // that is being serialized(added in session)
就是问题所在。我应该用什么替换它以便我不必使用会话?我想用 JWT 替换它。
oauth-2.0 - 扩展 OAuth2 Google Passport.js 策略以使用 JWT
我已经使用 JWT 设置了电子邮件和密码策略,并希望使用 Google OAuth 设置来扩展它,而不是使用 cookie。
现在,虽然两个 Google 身份验证路由工作正常,但正在我的用户集合中创建一个用户,并且我被发送回回调路由,当我尝试转到 /api/ 时,我的用户未定义current_user 路由。
这是我的代码:有什么想法吗?
index.js(入口点)
路由器.js
护照.js
编辑:Async/Await 的重构代码
node.js - 登录坚持MEAN堆栈和护照谷歌策略
我了解如何设置 Google 策略并使用会话 cookie 正常完成,但我的问题围绕着保持登录状态客户端。
如何使用会话 cookie 在客户端显示用户已登录/注销?我是否应该isLoggedIn
根据每个请求的结果设置一个变量?我应该简单地检查 cookie 是否存在并设置变量,还是应该有一个 API 告诉我是否req.user
不为空?
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
node.js - PassportJS 在成功重定向之前获取 sessionID
所以我有这个端点:
在将用户重定向到其他页面之前,我需要将他的 sessionID 保存到数据库以供以后使用。
我试过这个:
但是我不确定不包括“successRedirect”是否有任何缺点?