【问题标题】:Best/standard method of generating a users unique id?生成用户唯一 ID 的最佳/标准方法?
【发布时间】:2017-08-26 08:44:08
【问题描述】:

我正在编写一个登录脚本,并试图让它比过去更安全。在我过去只存储uniqid() 的哈希并将其存储为用户登录时的会话之前。现在我正在使用以下函数来创建 UID,但认为它可能有点矫枉过正。它返回一个 64 个字符的字符串。

private function _createUid() {
    $bytes = random_bytes(32);
    $uid = bin2hex($bytes);

    return $uid;
}

现在我的问题是,存储登录唯一 ID/令牌的标准方法是什么?我不是指记住我,因为这是一个完全不同的故事,而只是一个典型的登录以及我应该存储为 UID 的内容。

任何帮助都会很棒,谢谢!

【问题讨论】:

  • 我认为 JWT 令牌是存储会话的绝佳方式,因为它不需要数据库访问来验证并且可以随时过期。您还没有真正说明您要达到的目标。这些 ID 是发送到服务器以验证客户端还是?
  • 它不一定是字符串长度应该引起担忧。将唯一性与验证相结合是一个很好的方法。您应该根据存储在服务器端的内容检查会话值。例如。每个请求的数据库条目。正如 Luke 所指出的,JWT 是一种很好的身份验证方法。即使使用 JWT,您也可以在每个请求上验证附加到 json 令牌的值。
  • 你不需要这个,因为你已经有了它 - 会话 ID。

标签: php encryption login token access-token


【解决方案1】:

简单地使用我正在使用的东西。似乎可以通过多种不同的方式生成用户 ID,但没有一种方式是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2021-02-13
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    相关资源
    最近更新 更多