1

我有一个关于 PHP 登录系统的问题。是否可以在另一个登录系统中拥有一个登录系统。

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

这可以使用不同的会话或相同的会话来完成吗?如果原始会话没有结束那就太好了,这样一旦用户完成了具有更高安全性内容的页面,他们就可以继续使用以前的页面。

希望这是有道理的,任何可能为我指明正确方向的信息将不胜感激!

4

5 回答 5

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
}

ETC...

于 2010-12-07T02:58:40.983 回答
1

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

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

$_SESSION['secondArea'] = TRUE;

unset()当他们退出第二个区域时,您可以这样做。

于 2010-12-07T02:57:53.400 回答
0

您可以使用相同的会话 - 由他身边的相同 cookie 标识。但只需设置和检查不同的会话变量来表示各种登录状态:$_SESSION['hasUserAccess']$_SESSION['hasAdminAccess'].

或者也许:$_SESSION['accessStatus']which 可以具有'public', 'user',之类的值'admin'

于 2010-12-07T03:29:14.047 回答
0

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

例如(在伪代码中)

if request is a POST and username and password are valid:
    display content
else:
    display login form
于 2010-12-07T03:01:16.370 回答
0

如果您想进一步保护它,我建议您使用 MD5 进行会话。

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

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

这使得很难有人拦截它。

于 2010-12-07T16:28:22.750 回答