我正在重组应用程序。
在我的应用程序开始时,我需要初始化一个对象来代表当前用户。我正在计划一个身份验证类来处理登录和注销,我想知道用户 id 和数据库检索的初始会话变量检查是否也适用于这个类,或者是否有标准协议?
谢谢
嗯,当然。首先检查用户 ID 的会话变量是正确的做法。
无论使用哪种身份验证,您都必须检查是否有人已经登录。它甚至没有那么复杂。对于最简单的使用:
if(isset($_SESSION['logged_status']) && $_SESSION['logged_status'] ==1) {
$this -> logged = true;
}
但是,作为会话变量的数据库检索部分并不像您希望的那样安全。虽然,缓存记录可以存储在会话中而没有任何风险。
通常我这样做的方式是创建一个通用的 WebUser 类。这个课程基本上是会话的模型。因此,每次应用程序运行时都会创建一个实例。signIn
然后在那个类上,像/signOut
之类的不良 dop 方法isAuthenticated
和其他东西。然后,此类与模型交互以进行身份验证,该模型还返回用户实体的某些属性(如 user_id)以供以后使用。虽然我通常也直接在 WebUser 类上为 User 实体创建一个方便的 getter。