Php 生成用户唯一id的最佳/标准方法?

Php 生成用户唯一id的最佳/标准方法?,php,encryption,login,token,access-token,Php,Encryption,Login,Token,Access Token,我正在编写一个登录脚本,并试图使它比过去更加安全。以前我只存储uniqid()的散列,并将其存储为用户登录时的会话。现在我使用下面的函数来创建UID,但我认为这可能有点过头了。它返回一个64个字符的字符串 private function _createUid() { $bytes = random_bytes(32); $uid = bin2hex($bytes); return $uid; } 现在我的问题是,存储登录唯一id/令牌的标准方法是什么?我指的不是“记

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

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

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


任何帮助都会很好,谢谢

只是使用了我正在使用的东西。似乎可以用许多不同的方法生成用户ID,但没有一种方法是正确的。

只是使用了我所使用的方法。似乎可以通过许多不同的方式生成用户ID,但没有一种方式是正确的。

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