Spring 启动:确认在 RESTful 中注册

Spring Boot: Confirming registration in RESTful

我正在使用 Spring 引导,不知道如何设计注册确认过程。

  1. UUID是生成随机token的最佳选择吗?我看到人们写“不,不是”,但他们没有解释为什么以及什么更好
  2. 很多人还建议避免通过 GET 参数发送令牌,因为存在有人可以窃取它的风险。他们鼓励在请求正文中发送带有令牌的 POST 请求,但是如何从电子邮件发送 POST 请求?使用 ?但是我的服务器应该能够处理这个请求,但是这种类型的请求适合 REST 应用程序吗?或者我有可能从电子邮件发送 POST 带有 json 正文的请求吗?

我无法决定如何解决这些问题。

UUID 似乎是一个完美的令牌解决方案。我看不出有什么问题。

关于问题 2:如果您有令牌,它会被多次使用,那么在 GET 请求中使用该令牌确实是一个非常糟糕的主意。但是,对于注册确认,您通常只有一次有效的令牌。因此,一旦有人使用了令牌,您就应该将此令牌标记为无效。在这种情况下,在 GET 请求中使用它不会带来任何安全风险。此外,令牌本身应该仅用于标记用户帐户,但不应允许用户在单击 link 后自动登录。那你应该没问题。