![](/img/trans.png)
[英]Save google authenticated user into mysql database with node.js and 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.js
( vue.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.