所以我整个下午都在为此苦苦挣扎。我根本无法让我的 NodeJS 应用程序在 kubernetes 上运行以连接到我的 MongoDB Atlas 数据库。
在我的应用程序中,我尝试运行
mongoose.connect('mongodb+srv://admin:<password>@<project>.gcp.mongodb.net/project_prod?retryWrites=true&w=majority', { useNewUrlParser: true })
Run Code Online (Sandbox Code Playgroud)
但我只是得到错误
UnhandledPromiseRejectionWarning: Error: querySrv ETIMEOUT _mongodb._tcp.<project>.gcp.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:196:19)
(node:32) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 17)
Run Code Online (Sandbox Code Playgroud)
我也尝试过设置 ExternalName 服务,但是使用 URL 或 ExternalName 导致我无法连接到数据库。
我已经在 MongoDB Atlas 上将我的 IP 列入白名单,所以我知道这不是问题。
它似乎也适用于我的本地机器,但不适用于 kubernetes pod。我究竟做错了什么?
在我的应用程序中,用户的帐户将由其他人为他们创建,因此我想向他们发送密码重置电子邮件,以便他们可以设置密码并登录。问题是我不希望这些链接在此之后过期60 分钟类似于默认密码重置电子邮件。现在我可以更改过期时间,但我希望常规密码重置保持在 60 分钟,但欢迎电子邮件链接永不过期或在很长一段时间后过期。
我如何在不实施第二个令牌系统的情况下进行此操作,我似乎找不到任何关于此的信息。
我想我也可以允许用户在他们的令牌过期时重新发送欢迎电子邮件,但这有点烦人。