gmail - “UnhandledPromiseRejectionWarning:错误:未设置刷新令牌。” 尝试使用 gmail API 使用 digitalocean 部署节点应用程序时
问题描述
const express = require('express');
require("dotenv").config();
const app = express();
const nodemailer = require("nodemailer");
const { google } = require("googleapis");
const OAuth2 = google.auth.OAuth2;
let pass = process.env.PASSWORD;
const PORT = process.env.PORT || 5000;
新的刷新令牌在 .env 文件中
const CLIENT_ID = process.env.CLIENTID;
const CLIENT_SECRET = process.env.SECRET;
const REDIRECT_URI = process.env.REDIRECTURI;
const REFRESH_TOKEN = process.env.REFTOKEN;
const oauth2Client = new OAuth2(
CLIENT_ID,
CLIENT_SECRET,
"https://developers.google.com/oauthplayground"
);
错误是这样的 - newPortfolio/node_modules/google-auth-library/build/src/auth/oauth2client.js:214 throw new Error('No refresh token is set.'); 不确定它在我的代码中的位置
oauth2Client.setCredentials({
refresh_token: REFRESH_TOKEN
});
const accessToken = oauth2Client.getAccessToken()
app.use(express.static('public'));
app.use(express.json());
app.get('/', (req, res)=> {
res.sendFile(__dirname + '/public/index.html')
})
app.post('/', (req, res) => {
const smtpTransport = nodemailer.createTransport({
service: "gmail",
auth: {
type: "OAuth2",
user: "my@email.com",
clientId: CLIENT_ID,
clientSecret: CLIENT_SECRET,
refreshToken: REFRESH_TOKEN,
accessToken: process.env.ACCESSTOKEN
}
});
const mailOptions = {
from: req.body.email,
to: 'my@email.com',
subject: `req.body.subject`,
text: req.body.message
}
smtpTransport.sendMail(mailOptions, (error, response) => {
error ? console.log(error) : res.send('success');
smtpTransport.close();
});
})
app.listen(PORT, () =>{
console.log(`server running on port ${PORT}`)
})
在 localhost 上运行时一切正常。收到邮件,一切正常。但试图在digitalocean上运行。是给出了令牌错误,当我检查网站时,没有 CSS/JS 并且电子邮件没有发送
解决方案
推荐阅读
- java - Java流修改字符串
- php - 上传 XLS 文件:1089 错误恶意文件已通过(Laravel)
- android - Android Stuio 不显示或下载 sdk 仅在更改语言后
- react-native - 边界半径溢出在 react-native 中无法正常工作
- javascript - javascript - Promise.resolve.then 不连续运行
- python - Python:如何将 JSON 对象附加到 JSON 数组
- operating-system - 为什么 Dekker 的算法版本 2 违反“进度”并满足“有界等待”?
- scala - Scala Dataframe NA 值未被替换
- json - JSON文件是否应该在底部有一个新行
- python - 如何使用正则表达式捕获python中两个连字符之间的单词?