簡體   English   中英

如何將Google OAuth2 ID令牌與node.js / passport.js結合使用,以驗證用戶是否有效並經過身份驗證?

[英]How can I use the Google OAuth2 ID token with node.js / passport.js to verify if the user is valid and authenticated?

在前端,我正在使用vue.jsvue.js ),並通過Google OAuth流,從以下位置獲取了id_token

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

然后,我想將該令牌傳遞給我的node.js服務器(Express / Passport),以驗證是否允許用戶登錄。

我想使用護照,並在回信中將JWT發送回前端。

有人可以指導我如何做到這一點嗎?

使用名為googleapis的節點模塊會更容易,安裝后,導入該模塊。

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獲得令牌。

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將包含您要查找的用戶信息,一旦獲得用戶信息,便可以使用護照js進行存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM