Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Nodemailer/Gmail – 什么是刷新令牌,如何获得一个?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在节点应用程序中使用Nodemailer做一个简单的联系表单。我想让所有的msg从我为此目的的Gmail帐户发送到我的个人邮件

在客户端,我所做的就是获取客户的姓名/邮件/消息,并将其发送到服务器。它在本地工作正常,但部署时无法工作(在Heroku btw上)。

经过快速搜索,似乎我必须从Google Developers Console生成一个ClientId和ClientSecret,但是当我们产生一个“刷新令牌”时,我完全失去了。

var smtpTransport = nodemailer.createTransport("SMTP",{
        service:"Gmail",auth:{
            XOAuth2: {
                user:"myaccount@gmail.com",clientId:"",clientSecret:"",refreshToken:""
            }
        }
    });

我很困惑:什么是刷新令牌,如何获得一个

解决方法

这个答案的注释原作者:

问题1:什么是刷新令牌?

从发现的文档here

另见Offline AccessUsing a refresh token

问题2:我如何得到一个

步骤1:在Google Developers Console获取OAuth 2.0凭据

here所述,您应该:

>转到Google Developers Console
>选择项目,或创建一个新项目。
>在左侧的边栏中,展开API& AUTH。接下来,点击API。在API部分中选择启用的API链接,以查看所有已启用的API的列表。确保“Gmail API”位​​于启用的API列表中。如果您尚未启用它,请从API列表(在Google Apps API下)中选择Gmail API,然后选择API的启用API按钮。
>在左侧的边栏中,选择凭据。
>如果您还没有这样做,请通过单击创建新客户端ID并提供创建凭据所需的信息来创建项目的OAuth 2.0凭据。

>在与每个凭据相关联的表中查找客户端ID和客户机密码。

步骤2:在Google OAuth2.0 Playground获取刷新令牌

>转到Google Oauth2.0 Playground
>单击右上角的齿轮按钮。设置从Google Developers Console获得的客户端ID和客户机密钥,并选择访问令牌位置作为授权头部带承载前缀。关闭此配置叠加层。

>设置范围。请使用https://mail.google.com/,因为这是nodemailer需要的。然后点击授权API按钮。

>在OAuth2.0授权之后,交换令牌和voilá的授权码!您的刷新令牌即可使用

大佬总结

以上是大佬教程为你收集整理的node.js – Nodemailer/Gmail – 什么是刷新令牌,如何获得一个?全部内容,希望文章能够帮你解决node.js – Nodemailer/Gmail – 什么是刷新令牌,如何获得一个?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。