Google oauth 2.0 API 密码更改不接受用户名和密码
Google oauth 2.0 API password change Username and Password not accepted
我有一个使用 nodemailer 的表单,xoauth2 和 google APi oauth2,我上周更新了密码,从那时起我的应用程序就无法运行,我得到:
'535-5.7.8 不接受用户名和密码。了解更多 at\n535 5.7.8
我试过删除该应用程序并创建一个新应用程序,但它似乎没有获取新的更改密码。有关如何解决此问题的任何建议?我允许安全性较低的应用程序,并显示解锁验证码。
我通过更新到最新版本的 Nodemailer 解决了这个问题,并删除了 xoauth2 模块,因为 Nodemailer 3 具有更好的 Oauth 2 支持。继续 Google Oauth 2.0 playground 我能够获得正确的访问和刷新令牌。
@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
}
});
此 link 凭据也有效。 https://www.youtube.com/watch?v=JJ44WA_eV8E
您必须四处浏览,因为 google 网络布局略有不同。当然可以!
我有一个使用 nodemailer 的表单,xoauth2 和 google APi oauth2,我上周更新了密码,从那时起我的应用程序就无法运行,我得到:
'535-5.7.8 不接受用户名和密码。了解更多 at\n535 5.7.8
我试过删除该应用程序并创建一个新应用程序,但它似乎没有获取新的更改密码。有关如何解决此问题的任何建议?我允许安全性较低的应用程序,并显示解锁验证码。
我通过更新到最新版本的 Nodemailer 解决了这个问题,并删除了 xoauth2 模块,因为 Nodemailer 3 具有更好的 Oauth 2 支持。继续 Google Oauth 2.0 playground 我能够获得正确的访问和刷新令牌。
@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
}
});
此 link 凭据也有效。 https://www.youtube.com/watch?v=JJ44WA_eV8E
您必须四处浏览,因为 google 网络布局略有不同。当然可以!