Nodemailer/Gmail-什么是刷新令牌,如何获得?

我正在尝试使用nodeEmailer在节点应用程序中创建一个简单的联系人表单。我希望所有的消息都能从我的gmail账户发送到我的个人邮箱

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

在快速搜索之后,我似乎不得不从谷歌开发者控制台生成ClientIdClientSecret——我就是这么做的——但当涉及到生成“刷新令牌”时,我完全不知所措

var smtpTransport=nodemailer.createTransport(“SMTP”{
服务:“Gmail”,
认证:{
XOAuth2:{
用户:“[email protected]",
客户ID:“,
客户机密:“,
刷新令牌:“
}
}
});

我很困惑:刷新令牌到底是什么?如何获取

此答案原件作者的注释:

所以,我终于找到了答案。我很惊讶我找不到更多关于这方面的资源,所以对于那些需要使用GmailNodemailer

我在这里找到了答案:http://masashi-k.blogspot.fr/2013/06/sending-mail-with-gmail-using-xoauth2.html

如果你已经有了一个新的用户,但情况不太好,试着创建一个新用户。对我来说就是这样

我希望这对某人有用

干杯


问题1:刷新令牌到底是什么

从这里找到的文档:

当用户未登录到应用程序时,刷新令牌为应用程序提供对Google API的连续访问

(……)

注意事项:

  • 请确保安全且永久地存储刷新令牌,因为您只能在第一次执行代码交换流时获取刷新令牌

  • 刷新令牌的数量有限制,每个客户端/用户组合有一个限制,所有客户端上每个用户有一个限制。如果您的应用程序请求太多的刷新令牌,它可能会遇到这些限制,在这种情况下,旧的刷新令牌将停止工作

另请参见脱机访问和使用刷新令牌


问题2:我如何得到一个

步骤1:在Google开发者控制台获取OAuth 2.0凭据

如本文所述,您应该:

  1. 转到Google开发者控制台
  2. 选择一个项目,或创建一个新项目
  3. 在左侧的侧栏中,展开API&验证。接下来,单击API。选择API部分中的启用的API链接以查看所有启用的API的列表。确保“Gmail API”在启用的API列表中。如果尚未启用,请从API列表(在Google Apps API下)中选择Gmail API,然后选择API的启用API按钮
  4. 在左侧的侧栏中,选择凭据
  5. 如果尚未创建项目的OAuth 2.0凭据,请单击“创建新客户端ID”,并提供创建凭据所需的信息,以创建项目的OAuth 2.0凭据
  1. 在与每个凭据关联的表中查找客户端ID客户端机密

特别注意指定https://developers.google.com/oauthplayground
在控制台中创建新用户时作为重定向URI。
否则,您将有一个错误


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

  1. 去谷歌Oauth2.0游乐场
  2. 单击右上角的齿轮按钮。将从Google开发者控制台获得的客户端ID客户端机密设置为,并选择访问令牌位置,作为带有承载前缀的授权头。关闭此配置覆盖
  1. 设置范围。使用https://mail.google.com/因为它是nodemailer所需要的。然后单击授权API按钮
  1. 在OAuth2.0授权之后,交换令牌的授权代码,然后瞧!您的刷新令牌已准备好使用

发表评论