gpt4 book ai didi

node.js - 如何将 Google OAuth2 ID token 与 node.js/passport.js 一起使用来验证用户是否有效并经过身份验证?

转载 作者:太空宇宙 更新时间:2023-11-03 23:14:06 24 4
gpt4 key购买 nike

在我的前端,我使用 vue.js (这并不重要),并通过 Google OAuth 流程,我从以下位置获取 id_token:

let googleAuthIdToken = await this.auth2.currentUser
.get()
.getAuthResponse().id_token;

然后我想将该 token 传递到我的 node.js 服务器(Express/Passport)以验证是否允许用户登录。

我想使用 Passport 并在回复中将 JWT 发送回前端。

有人可以指导我如何实现这一目标吗?

最佳答案

使用名为googleapis的 Node 模块更容易,安装后导入该模块。

import { google } from 'googleapis';

然后,您需要通过指定 CLIENT_ID、CLIENT_SECRET、REDIRECT_URL 创建 OAuthClient。

const oauth2Client = new google.auth.OAuth2(
CLIENT_ID,
CLIENT_SECRET,
REDIRECT_URL,
);

然后您可以使用oauth2Client从google获取 token 。

const {tokens} = await oauth2Client.getToken(code);
oauth2Client.setCredentials(tokens);

为了获取必要的用户信息并存储在您自己的数据库中,您需要调用此方法。

const plus = google.plus({ version: 'v1', oauth2Client });
const me = await plus.people.get({ userId: 'me' });

me将包含您正在查找的用户信息,一旦您获得用户信息,您就可以使用passport js存储它。

关于node.js - 如何将 Google OAuth2 ID token 与 node.js/passport.js 一起使用来验证用户是否有效并经过身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57698111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com