我已经在Nodejs中设置了使用Gmail API发送电子邮件的代码。它在本地机器上运行得非常好。它要求通过访问URL来输入代码。类似
Authorize this app by visiting this URL: someURL
Enter the code from that page here: copy-paste code here
这是谷歌根据Node.js Quickstart为Gmail自动完成的,它会自动生成token.json
。开发过程中一切都很顺利。
现在在生产中,我使用PM2和Nginx部署我的应用程序。因此,现在每个节点服务器都在后台运行,日志在文件中生成。
我在日志文件Enter the code from that page here:
中看到了上面的提示。但是,当日志通过管道传输到文件时,我无法粘贴代码,因为我无法访问标准输入。
我尝试过从本地生成token.json
并在服务器中使用它,但似乎不起作用。
我该如何解决这个问题?有什么办法解决这个问题吗?
注意:授权和发送邮件的代码运行良好。我不想把它贴在这里,因为我不想这个问题太混乱。
如果您试图在不需要用户交互的情况下制作服务器应用程序,而不是使用常规OAuth,则可以尝试使用服务帐户。
尽管考虑到服务帐户本身没有Gmail API,因此您应该启用域侧委派来模拟域的另一个用户。
如果您坚持对真实用户进行身份验证,则可以在实现PM2之前检索token.json
,然后再使用它。
此外,您还可以查看这两篇(1和2(github文章,这两篇文章也开启了您尝试使用stdin
对用户进行身份验证的最初想法。