我有一个关于 PHP 登录系统的问题。是否可以在另一个登录系统中拥有一个登录系统。
这是一个示例:我登录到一个站点,PHP 创建了会话。然后,我想访问具有更高安全性内容的另一个页面,因此我要求用户重新输入他们的用户名/密码以访问该页面。
这可以使用不同的会话或相同的会话来完成吗?如果原始会话没有结束那就太好了,这样一旦用户完成了具有更高安全性内容的页面,他们就可以继续使用以前的页面。
希望这是有道理的,任何可能为我指明正确方向的信息将不胜感激!
我有一个关于 PHP 登录系统的问题。是否可以在另一个登录系统中拥有一个登录系统。
这是一个示例:我登录到一个站点,PHP 创建了会话。然后,我想访问具有更高安全性内容的另一个页面,因此我要求用户重新输入他们的用户名/密码以访问该页面。
这可以使用不同的会话或相同的会话来完成吗?如果原始会话没有结束那就太好了,这样一旦用户完成了具有更高安全性内容的页面,他们就可以继续使用以前的页面。
希望这是有道理的,任何可能为我指明正确方向的信息将不胜感激!
当然有可能。只需保留用户已经执行的身份验证类型即可。
喜欢:
$_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...
可以使用相同的会话来完成。
一旦他们登录到第二个区域,就做这样的事情。
$_SESSION['secondArea'] = TRUE;
unset()当他们退出第二个区域时,您可以这样做。
您可以使用相同的会话 - 由他身边的相同 cookie 标识。但只需设置和检查不同的会话变量来表示各种登录状态:$_SESSION['hasUserAccess']和$_SESSION['hasAdminAccess'].
或者也许:$_SESSION['accessStatus']which 可以具有'public', 'user',之类的值'admin'。
如果您希望用户在每次查看内容时再次登录,您可以使用 POST 登录表单,然后在页面上显示数据之前,在显示内容之前检查 POST 的用户名和密码。
例如(在伪代码中)
if request is a POST and username and password are valid:
display content
else:
display login form
如果您想进一步保护它,我建议您使用 MD5 进行会话。
$_SESSION['userAuth'] = 'here-md5-hash';
加密 MD5 并将其存储(仅用于用户名),然后保存。所以你的服务器知道解密。
这使得很难有人拦截它。