保护REST未经身份validation的帐户创build

我正在devise一个REST API,而且我碰到了一个奇怪的问题。 这个API的99%是安全的,但有一些function需要公开访问。 这些涉及帐户创build和初始密码设置。 一旦他们有凭据,他们可以访问其余的API。

允许用户通过registry单创build新帐户的端点是未经validation的。 保护这个端点并不是真的可行,因为我在nodejs上使用了AngularJS,并通过AJAX调用对我的API进行了狗食。 这意味着我无法在任何地方隐藏凭据来访问AccountCreation端点。 目前,我有networkingforms对另一个端点进行AJAX调用,并创build一个表示forms的标记是有效的。 一旦提交该令牌被validation,然后从数据库中删除。 然而,这个令牌端点在代码中显然是可见的,所以在那里没有太多的安全性。 电子邮件validation用于“激活”帐户,然后给用户一次性链接以设置其初始密码,该初始密码也驻留在未经authentication的端点上(但要求在电子邮件中发送令牌)。

我想我的担心是有人发垃圾邮件“CreateAccount”端点,并做一堆帐户。 实际上,我猜他们也可以简单地通过networking表单来做到这一点。 这是一个有效的安全问题吗? 大多数地方如何处理未经身份validation的帐户创buildnetworking表单?

编辑:最终的应用程序将通过https运行