Firebase云功能可以将OAuth2与gmail一起使用吗?

问题描述 投票:1回答:1

根据https://github.com/firebase/functions-samples/blob/master/email-confirmation/README.md

为了能够使用您的Gmail帐户发送电子邮件:启用访问较不安全的应用程序和显示解锁验证码。对于启用了两步验证的帐户生成应用程序密码。

看看节点邮件的doc,看起来通过Gmail SMTP发送电子邮件最安全的方式是http://nodemailer.com/smtp/oauth2/

我的问题是,假设我按照send emails from MY gmail account with OAuth2 and nodemailer的建议收集执行OAuth2所需的所有字段,那么OAuth2方法是否与云函数不兼容?

refreshToken是否需要在每次调用时生成新的accessToken?这肯定会增加成本,因为云功能需要更长的时间才能运行,我是否正确?

这就是为什么firebase函数在github repo中的样本故意没有包括也没有提到更安全的OAuth2方法?

firebase google-cloud-functions gmail-api google-oauth2 nodemailer
1个回答
2
投票

可以将OAuth与云功能结合使用。您可以查看this link以获取更多信息,但这里有一点摘要:

首先,您需要配置OAuth客户端ID以用于Gmail API。启用API并选择区域后,转到Cloud Console并根据您正在开发的功能创建相应的凭据。它应该包括应用程序类型,客户端名称和一些授权的JavaScript源,如上面的链接所示。这将为您提供安全存储的客户机密。

您还需要根据在控制台中应用的设置(例如index.jspackage.json)配置某些文件,以及重命名使用先前配置接收的客户端密钥。在将适当的项目和区域添加到文件后,可以使用链接中包含的命令部署函数,在index.js文件所在的同一目录中启动部署。

至于是否需要每次使用刷新令牌在每次调用时生成新的访问令牌,这取决于访问令牌何时设置为过期,或者您认为当前访问令牌不安全。只要访问令牌有效,刷新令牌就可以在您认为合适的任何时候使用,但不能用于对函数的每次调用。

成本将根据您在整个月中执行的调用次数而有所不同,前两个调用是免费的,而计算时间成本可能会根据使用的内存和CPU数量而有所不同。 Here您可以查看云功能目前的价格。据我所知,使用刷新令牌更新访问令牌等操作似乎对成本没有太大影响。

我解释的所有这些都与云功能有关,而不是与Firebase有关。我不熟悉Firebase的使用,但我认为由于函数示例应尽可能简单,因此它们将包含更简单的身份验证方法。无论如何,您可以自己添加OAuth选项,如Firebase documentation中所示。

我希望所有这些都有助于您了解如何将OAuth与云功能结合使用。

© www.soinside.com 2019 - 2024. All rights reserved.