设置并检查登录cookie


Set and check for login cookies?

我是PHP cookie和会话的新手。

我正在使用PHPauth项目,他们的一条指示让我感到困惑。从他们的wiki(此处:https://github.com/PHPAuth/PHPAuth/wiki/Class-Methods),登录功能上有注释:

注意:您需要获取返回的会话哈希并创建会话cookie,该方法不会为您执行此操作。

我问这个问题不是为了PHPauth项目,而是为了所有的认证,因为这是我不理解的。具体来说,是什么保证了会话的安全?我需要对根据数组给出的哈希做些什么吗?

Array (
    [error] => 
    [message] => You are now logged in. 
    [hash] => 2ec4b290cedd651cf1c20635a887dd7f7042dc54 
    [expire] => 0 
)

我的意思是,我可以放一块饼干,但后来呢?我如何知道该cookie是否对此特定登录有效?

谢谢!

当您在PHP中使用本机会话机制时,调用session_start()会自动向客户端发送创建包含会话ID哈希的cookie所需的HTTP应答(这就是为什么在调用session_start() btw.之前不应放置输出的原因)。默认情况下,此cookie名称为"PHPSSID",因此,当你请求一个页面时,PHP首先会检查是否有一个带有该值的哈希的cookie,如果是,它会再次继续你的会话。

当然,您也可以重命名默认会话cookie名称,等等。您应该在此处查看PHP会话选项:http://php.net/manual/en/session.configuration.php

简而言之:通常不需要将会话哈希保存在任何地方(出于安全原因,也不应该,除非你有正当理由),PHP会自动处理它。