我正在从单个Firebase函数运行一个嵌套api,并且由于OAuth的原因,整个控制器中的许多端点都需要SSL才能工作,因为它们发回了一个仅https签名的cookie。
因此,我需要能够使用 SSL 运行本地服务的 firebase 函数。我已经生成并注册了证书,并且之前已经将其用于React/Angular和独立的Node + Nest项目。
这具体是关于让它与 firebase 函数一起工作。
目前,在我的索引中,我有:
export const API = functions
.region("europe-west2")
.https.onRequest(nestApp);
巢应用在哪里
const server = express();
现在在一个普通的节点 + 嵌套应用程序中,我所要做的就是:
app = await NestFactory.create(AppModule, {
httpsOptions: {
key: keyFile,
cert: certFile,
},
});
将其适应上面的 firebase 函数不起作用,因为我必须传递快速实例。我已经通过文档和类型查看了对象嵌套的文档和类型,其中带有键和证书的http选项在哪里,但没有运气。
来自@nestjs/common
的 HttpOptions 接口确实具有这两个属性,但 express adapter.options(( 采用请求处理程序而不是该选项对象。
我认为你想做的事情是不可能的......以您希望的方式进行操作。
在本地运行云功能的目标是用于代码测试目的,但Google仍将管理背后的基础架构(SSL,身份验证等(,即使在本地环境中也是如此。
与其使用函数来管理它,为什么不模拟小型服务器呢?我可以将一个简单的NGINX视为反向代理(您可以使用任何您想要的服务(。这将允许您以更友好的方式管理 SSL 证书。
可以这样想:在你的工作流程中,你调用NGINX而不是直接调用函数。NGINX将在内部调用云函数,该函数将完成其工作,响应将返回到NGINX,然后从NGINX返回到您的工作流程,https签名已准备好进行下一步。
希望对您有所帮助! :)