问题标签 [passport-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.
node.js - 护照谷歌:为什么回调中的 sessionID 不同?
亲爱的,
护照谷歌周围有很多例子,但应该有一些我错过的东西。我知道我的问题可能被标记为“可能重复”,但很抱歉我找不到答案,或者他们都没有解决我的问题。
用户单击客户端上的 href 链接(在https://localhost:3000上运行),调用服务器上的 googleauth 路由(在https://localhost上运行)。
在服务器端,passport 进程运行良好,callbackUrl 在服务器端 /googleauth/redirect。
然后在这个回调中,我可以将重定向硬编码为“ https://localhost:3000 ”。效果很好。
但我不想要这个。我希望服务器从客户端捕获初始 url(因此https://localhost:3000),将其保留在会话中,然后在重定向中使用此信息。
在 google auth 路由中,我在调用 passport.authenticate 之前将 toRedirect 变量设置到会话中,感谢中间件。
然而,一旦谷歌进程完成(选择谷歌帐户并确认访问用户数据),回调中的 sessionID 不同,因此重定向的 url 未定义......当然远程地址不再是客户端一,但谷歌身份验证API一...
那么,伙计们,您是如何将 google 身份验证结果发回给您的客户的?
这是代码
应用程序.js
auth.js
谷歌路线
reactjs - 使用passport-google-oauth20在快速反应应用程序中谷歌登录后重定向问题
我有 express backend 和 create-react-app2 作为 frontend ,我也在使用 setupProxy 。现在我已经为谷歌登录配置了应用程序,但是登录后我没有正确重定向到索引页面。这是 console.developer.google.com 中的 google oauth 设置
我正在使用护照谷歌 oauth20 进行身份验证:这是我的护照文件:
这是我的路线:
这是我的 setupProxy 文件:
我被重定向到以下 URL:
node.js - 将 google 身份验证添加到 Node REST API
我想创建一个后端 API,我应该能够允许用户通过 Google/Linkedin/Email 登录。我需要将其创建为 API 而不是服务器渲染的应用程序。我可以使用jsonwebtoken
NodeJs 中的包或使用 passportJS 来制作电子邮件。但是如何使用所有三种身份验证方法在 ExpressJS 中启用 Google 登录/LinkedIn 登录和受保护的路由?
我该怎么做?我无法使用 Node REST API 找到好的资源。
node.js - Node + Express 应用程序中的 Passport + Google 令牌不断向邮递员的尝试抛出“未经授权”,令牌很好并且手动验证
我有一个使用 Node + Express + Passport 构建的后端 REST API,我正在尝试使用谷歌访问令牌进行身份验证。我正在使用这种策略。
我在 github 上查看了包的文档和问题,但没有任何东西可以解决这个问题。
我已经验证了访问令牌:
https://www.googleapis.com/oauth2/v1/tokeninfo?idToken
使用 id 令牌和https://www.googleapis.com/oauth2/v1/tokeninfo?acessToken
访问令牌,两者都是有效的,但它们都不起作用。我已经双重检查了我在后端使用了正确的 clientID 和 secret,在前端我从中获取了令牌。
以下是相关代码:
我在顶部导入如下:
该应用程序不会抛出任何类型的错误。
我在创建策略的地方添加了console.log——当我从邮递员那里开火时,没有记录任何内容。当我从有角度的前端发射时——它会记录数据并发射。
javascript - 如何从护照回调中提取其他 API 范围?
我想通过passport-google-oauth20
策略获取使用 Passport.js 的用户的生日。我从哪里得到这个额外范围的响应以及如何提取这些信息?
我在从用户那里提取个人资料和电子邮件方面取得了成功,但我尝试的所有其他范围似乎都找不到它返回的位置。我正在使用Google Identity Platform中的一些范围(更具体地说,是 People API,我已经从 Google Cloud Platform 激活了它)并且它们没有出现在 Passport 策略回调中(仅个人资料和电子邮件)。
这是我设置护照并检查返回的内容
在我的路线中,我声明了范围并重定向用户
我的 node 和 npm 版本目前是:
我的包版本如下:
据我了解,我应该能够使用 Passport 检索个人资料、电子邮件和 openid 以外的更多信息,并且我知道我需要获取我想要激活的范围的 API。我不明白的是如何在回调函数中从该 API 检索信息或如何检索该信息。
node.js - 使用 Passport,如果我使用令牌进行身份验证,序列化用户的目的是什么?
我将passport-google-oauth20
其用作我的应用程序的唯一身份验证形式。一切似乎都很好,我可以使用verify
回调护照提供的身份验证用户并将他存储在数据库中。
在这个应用程序中,我只会使用 google 对用户进行身份验证并检查他是否存在于数据库中。我不会向谷歌提出更多请求,也不会从谷歌获取更多信息。
我注意到护照的回调函数背后发生了很多神奇的事情。我对如何serializeUser
和deserializeUser
工作有一个模糊的理解,但我不确定什么时候有必要。
护照提供的回调函数在localStorage上设置了一个JWT,所以即使我设置{ session: false }
了重定向选项,我还需要序列化用户吗?
这是一些清除问题的代码
以下是路线:
我能够获得个人资料和我需要的所有信息。我还需要序列化用户吗?
node.js - 护照谷歌 oauth2 与护照谷歌 oauth20 包
这两个包看起来非常相似:
http://www.passportjs.org/packages/passport-google-oauth2/ http://www.passportjs.org/packages/passport-google-oauth20/
是一个取代另一个还是它们用于不同的目的?Google 身份验证的新手,仍在尝试使其正常工作。
javascript - Passport Google 策略 - passport.use 回调何时运行?回调URL?
我正在使用 Passport 并研究Google OAuth 2 strategy。我很难理解流程。
这是官方文档中的代码:
然后是路线:
这是我对流程的理解。用户单击按钮以在浏览器上使用 google 登录。请求被发送到/auth/google
。哪个电话passport.authenticate
。从那里,谷歌处理一些事情,一旦用户允许我们访问他们的谷歌账户,好吧,这就是我不理解的部分。
下一步是什么?Google 似乎会向callbackURL
我们提供的内容发送回复。但在这种情况下,回调何时passport.use
运行?该回调正在接受accessToken
,refreshToken
和profile
,因此似乎是接收来自 Google 的响应,而不是callbackURL
.
node.js - OAuth2 登录后重定向到前端(在不同的 URL 上)
我正在尝试按如下方式设置我的应用程序:
- Angular 7 前端,服务于http://localhost:4200
- Express 后端,服务于http://localhost:3500
- 用于 OAuth2 身份验证的护照库
我正在从服务器端(Express / Node.js)设置 OAuth2 流。在从前端单击登录按钮时,请求被发送到服务器,该服务器被重定向到谷歌以询问用户凭据/权限等。
我的回调 URL 是:http://localhost:3500/auth/callback。
成功登录后,重定向回前端 URL 的好方法是什么,即http://localhost:4200/?由于回调 URL 在服务器端
node.js - 无法使用护照和谷歌 oauth 策略进入谷歌登录页面
我正在尝试使用 Passport 让用户能够使用他们的 Google 帐户登录 Web 应用程序,但我似乎无法让我的登录路径 /auth/google 甚至重定向到 Google 登录页面. 我的其他路线有效,我的控制台没有任何错误,但是当我转到 localhost:5000/auth/google 时,页面只是挂起并最终给出“localhost 拒绝连接”错误(我假设之后它已超时)。
知道会发生什么吗?我已经在另一个应用程序中成功地使用了基本完全相同的代码——我知道我还没有为完全登录设置大部分脚手架,但我认为它至少应该在此时加载谷歌登录页面。
index.js
这是完整仓库的链接: https ://github.com/olliebeannn/chatterpod