在没有外壳访问的服务器上设置谷歌OAuth 2.0可以通过以下步骤完成:
const express = require('express');
const { google } = require('googleapis');
const app = express();
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const redirectUri = 'YOUR_REDIRECT_URI';
const oauth2Client = new google.auth.OAuth2(
clientId,
clientSecret,
redirectUri
);
app.get('/auth/google', (req, res) => {
const authUrl = oauth2Client.generateAuthUrl({
access_type: 'offline',
scope: ['https://www.googleapis.com/auth/userinfo.email']
});
res.redirect(authUrl);
});
app.get('/auth/google/callback', async (req, res) => {
const { code } = req.query;
const { tokens } = await oauth2Client.getToken(code);
oauth2Client.setCredentials(tokens);
// 在这里可以使用访问令牌调用谷歌API
res.send('授权成功!');
});
app.listen(8080, () => {
console.log('服务器已启动,监听端口8080');
});
请注意,上述代码仅为示例,您需要根据自己的需求进行适当的修改。
/auth/google
端点,您将被重定向到谷歌登录页面进行身份验证。一旦您成功登录并授权访问权限,您将被重定向回指定的重定向URI,并收到一个授权码。/auth/google/callback
端点中,您可以使用授权码交换访问令牌。一旦您获得访问令牌,您可以使用它来调用谷歌API。领取专属 10元无门槛券
手把手带您无忧上云