阻止向.net core web api提交联系表单

时间:2017-12-03 23:53:27

标签: c# asp.net-core jwt asp.net-core-webapi

我创建了一个网站,其中包含一封向我发送电子邮件的联系表单,我想要实现的操作是当任何用户(它不必登录)时提交该联系表单会阻止该表单再次提交一段时间,这是为了防止垃圾邮件。 我一直在浏览JWT代币并考虑在用户提交该表单后使用令牌进行验证,但我不知道这是否是可能的解决方案而且我想知道是否有其他方式这样做。 我在我的客户端应用程序中使用C#Web Api作为我的后端和Angular 5。

1 个答案:

答案 0 :(得分:1)

我认为您应该使用Google recapcha

因为您提到了用于前端开发的Angular 5。您可以使用此ngx-recaptcha在客户端生成验证码,并在后端验证生成的recapcha令牌。

流应为:

  • 用户将信息填写到所需表格中。
  • 用户单击“提交”按钮(已实现盲密码)。
  • 用户单击“提交”按钮后,Google Recaptcha服务应生成一个令牌。
  • 在请求中提交带有Recaptcha令牌的用户信息。
  • 在后端,验证重新验证码(将Google服务与客户机密,客户ID结合使用)
  • 如果令牌有效,请将表单信息保存到数据库。
  • 否则,请阻止该操作。