我正在遵循 Meteor 指南,并使用以下软件包设置了登录系统:useraccounts:bootstrap
useraccounts:flow-routing
accounts-ui@1.1.9
accounts-password@1.4.0
. 当我使用命令部署我的应用程序进行测试时,meteor-now
我能够注册一个帐户并登录到我的应用程序,但是在一段时间不使用该应用程序尝试重新登录后,我收到了login forbidden
消息,似乎我注册的帐户没有不再存在。我找不到发生这种情况的原因。我假设它与部署有关,meteor-now
因为我的本地实例上似乎没有这个问题。
1 回答
在 localhost 上,当您开发应用程序时,您将连接到本地数据库。您可以在环境变量中设置数据库连接参数MONGO_URL
。
乳清你使用meteor-now
然后你的应用程序被部署。这意味着代码 od 应用程序已编译并安装在 Meteor 云托管上。
代码已传输,但数据和配置没有。有一些解决方案,您可以根据您想要实现的目标选择一个。
1) 将本地实例连接到生产数据库。您应该在本地机器上设置 MONGO_URL。
教程
2)您应该创建固定装置。我的意思是当服务器启动并在数据库中创建用户时执行的命令(如果他不存在)。
在你的情况下,我会推荐第二种方法。
有一个通过fixtures创建用户的例子
更新 1
安装 Meteor 现在我看到这些输出没有任何额外的配置
链接上的段落
https://github.com/jkrup/meteor-now#user-content-full-deploy-with-mongodb
解释了数据丢失的可能原因。请详细说明您的 MONGO_URL 设置。
您确定在您拥有数据和丢失数据之间不会进行部署吗?在这种架构中,任何代码更新都会删除您的数据库。
更新 2
在我的屏幕截图中,存在与 meteor-now 与 now v2 不兼容有关的错误。
这没有与数据库连接,但可能部分连接。现在,v1 是 Docker 镜像的服务,v2 是 lambda 表达式的服务。降级后
npm install -g now@1
错误消失了,但我无法完成部署它需要太多时间。下面是与 Mongo DB Atlas 的数据库连接的示例。
meteor-now -e MONGO_URL=mongodb+srv://<USER>:<PASSWORD>@<SUBDOMAIN>.mongodb.net/test?retryWrites=true