双重登录PHP系统

时间:2010-12-07 02:50:22

标签: php session login multiple-login

我对PHP登录系统有疑问。是否可以在另一个登录系统中安装登录系统。

这是一个例子:我登录一个站点,PHP创建会话。然后,我想访问另一个包含更高安全性内容的页面,因此我要求用户重新输入用户名/密码以访问该页面。

可以使用不同的会话或同一会话来完成吗?如果原始会话没有结束会很棒,所以一旦用户在具有更高安全性内容的页面上完成,他们就可以继续使用之前的页面。

希望这是有道理的,任何可能指向正确方向的信息都会非常感激!

5 个答案:

答案 0 :(得分:3)

当然有可能。只需保留已经执行过哪种身份验证的用户。

像:

$_SESSION['auth_type'] = 'first one'; // when user logged in first time
$_SESSION['auth_type'] = 'more secured one'; // when user logged in second time time

之后,您可以检查用户的身份验证类型:

if ($_SESSION['auth_type'] == 'first one') {
    // ask for second auth here
}

等等...

答案 1 :(得分:1)

可以使用相同的会话来完成。

一旦他们登录到第二个区域就做这样的事情。

$_SESSION['secondArea'] = TRUE;

当他们退出第二个区域时,你可以unset()

答案 2 :(得分:0)

如果您希望用户再次登录,每次他们查看内容,您可以使用POST登录表单,然后在页面上显示数据之前,检查POSTed显示内容之前的用户名和密码。

e.g。 (伪代码)

if request is a POST and username and password are valid:
    display content
else:
    display login form

答案 3 :(得分:0)

您可以使用相同的会话 - 由他身边的同一个Cookie识别。但只需设置并检查不同的会话变量即可表示各种登录状态:$_SESSION['hasUserAccess']$_SESSION['hasAdminAccess']

或许:$_SESSION['accessStatus']可以包含'public''user''admin'等值。

答案 4 :(得分:0)

如果你想要更多地保护它,我建议使用MD5进行会话。

$_SESSION['userAuth'] = 'here-md5-hash';

加密MD5并将其存储(仅限用户名),然后保存。 所以你的服务器知道解密。

这使得有人拦截它很难。