【问题标题】:Create an account through a REST api通过 REST api 创建帐户
【发布时间】:2019-09-23 19:08:01
【问题描述】:

我想在node.js 中为我的移动应用创建一个安全 API。 基本上我希望用户能够通过应用程序创建他们的帐户(使用电子邮件和密码),所以我想知道什么是正确的方法。我想像这样:

curl -d '{"email":"hello@world", "password":"1234"}' -H "Content-Type: application/json" -X POST https://myapi/users

所以服务器会回复新创建的用户和 oauth 常用令牌,以便验证下一个请求:

{
   id: '1234455656',
   email: 'hello@world',
   auth_token: 'my_auth_token'
   refresh_token: 'my_refresh_token'
}

感觉这不是最好的安全方式,因为即使没有应用程序,任何人都可以创建用户,我想知道应用程序通常是如何处理这个问题的?也许还有比快递更好的东西来做好这件事

【问题讨论】:

  • 考虑使用支持OAuth 的系统及其可以生成的标准令牌。您可以使用 Passport 在 Express 中轻松完成此操作。

标签: node.js rest api express


【解决方案1】:

您不希望任何人都能够创建帐户吗?

这里有一些想法:

为了防止用户在没有应用的情况下创建帐户,需要一个 api 密钥以及与应用构建捆绑在一起的注册请求(例如在标头中)。

您还应该要求用户验证他们的电子邮件地址,您可以清理一段时间后没有验证他们的电子邮件地址的用户帐户。

【讨论】:

  • 我喜欢 api 密钥,我刚刚意识到通过 https 至少在检查来自应用程序的 http 请求时它会被隐藏。
  • 是的,但是,对于可能想要更仔细地检查应用程序(或任何客户端应用程序)的精明用户来说,无法真正隐藏密钥。
  • 是的,这是最低限度的安全措施,我实际上找到了一个完整的工作流程:itnext.io/an-oauth-2-0-introduction-for-beginners-6e386b19f7a9
猜你喜欢
  • 1970-01-01
  • 2022-10-19
  • 2017-07-17
  • 2022-11-08
  • 2016-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多