两者有何不同?
根据我对一般身份验证工作方式的理解,ID存储在服务器端和客户端。对于每个请求,客户端发送cookie,匹配服务器中的ID,并输出所需的数据。因此,当我这样做时:
session_start();
session_id();
cookie也存储在客户端。这对我来说很有意义,因为在我看来,session_id()
只是生成了那个ID。然后,我们可以将这个ID存储到(例如)给定用户的User表中。然后,对于每个浏览器请求,我们只需将cookie中的ID与数据库中的ID进行匹配。
但是,为什么我们不能坚持使用ID进行身份验证呢?我看到在线代码做以下事情,我不太明白在$_SESSION
中设置字段的意义是什么:
session_start();
$_SESSION['username'] = 'Billy Bobby';
会话ID存储在cookie客户端。在服务器端,数据(来自$_SESSION)保存在服务器ID Key下的文件中(通常)。
您可以将所有数据保存在数据库中,但默认情况下,在一个页面视图和第二个页面视图之间没有持久性。
会话ID与身份验证无关。尽管您可以使用会话数据来管理跨多个请求的身份验证状态