Javascript 不接受Google oauth 2.0 API密码更改用户名和密码
我有一个使用nodemailer、xoauth2和google APi oauth2的表单,我上周更新了密码,从那以后我的应用程序一直无法工作,我得到: '535-5.7.8不接受用户名和密码。有关详细信息,请访问\n535 5.7.8Javascript 不接受Google oauth 2.0 API密码更改用户名和密码,javascript,node.js,oauth-2.0,nodemailer,google-oauth,Javascript,Node.js,Oauth 2.0,Nodemailer,Google Oauth,我有一个使用nodemailer、xoauth2和google APi oauth2的表单,我上周更新了密码,从那以后我的应用程序一直无法工作,我得到: '535-5.7.8不接受用户名和密码。有关详细信息,请访问\n535 5.7.8 我尝试过删除这个应用程序并创建一个新的应用程序,但它似乎没有接收到新更改的密码。对如何解决这个问题有什么建议吗?我允许不太安全的应用程序,并显示解锁验证码。我通过更新到最新版本的NodeEmailer解决了这个问题,并删除了xoauth2模块,因为NodeEma
我尝试过删除这个应用程序并创建一个新的应用程序,但它似乎没有接收到新更改的密码。对如何解决这个问题有什么建议吗?我允许不太安全的应用程序,并显示解锁验证码。我通过更新到最新版本的NodeEmailer解决了这个问题,并删除了xoauth2模块,因为NodeEmailer 3具有更好的Oauth 2支持。在GoogleOAuth2.0平台上,我能够获得正确的访问和刷新令牌 @sambellerose我从哪里来的
const generator = xoauth2.createXOAuth2Generator({
user: serverConfig.gmail.client_user,
clientId: serverConfig.gmail.client_id,
clientSecret: serverConfig.gmail.secret,
refreshToken: serverConfig.gmail.refresh_token,
accessToken: serverConfig.gmail.access_token,
});
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
xoauth2: generator,
},
});
只有以下几点:
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
type: 'OAuth2',
user: serverConfig.gmail.client_user,
clientId: serverConfig.gmail.client_id,
clientSecret: serverConfig.gmail.secret,
refreshToken: serverConfig.gmail.refresh_token,
accessToken: serverConfig.gmail.access_token,
},
});
我希望这与上面的答案类似。这就是我构建我的系统的方式,它马上就开始工作了
const transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 465,
secure: true, // true for 465, false for other ports
auth: {
type: "OAuth2",
user: process.env.EMAIL, // email you are using with nodemailer
pass: process.env.PASSWORD, // email password
clientId: process.env.CLIENTID,
clientSecrect:process.env.CLIENTSECRET,
refreshToken: process.env.REFRESHTOK,
accessToken: process.env.ACCESSTOK,
},
tls:{
rejectUnauthorized:false
}
});
这个凭证链接也起了作用
你必须四处浏览,因为谷歌的网页布局有点不同。当然可以了 您可以使用nodeEmailer oauth2显示任何代码吗?我和你有同样的错误。谢谢如果你不必在代码刷新时用access代码不断地更改代码就好了。@KeplerIO我将我的代码存储在json文件中,并在更新时进行更新changes@GraemePaul我想这是可行的,但从我记得看到的情况来看,它每1500秒左右就会刷新一次。要不断地改变是非常乏味的。我发现使用标准的smtp Gmail API是一件更轻松的事,这让我非常高兴!你可以接受你自己的答案,就像一种魅力。