我对PHP登录系统有疑问。是否可以在另一个登录系统中安装登录系统。
这是一个例子:我登录一个站点,PHP创建会话。然后,我想访问另一个包含更高安全性内容的页面,因此我要求用户重新输入用户名/密码以访问该页面。
可以使用不同的会话或同一会话来完成吗?如果原始会话没有结束会很棒,所以一旦用户在具有更高安全性内容的页面上完成,他们就可以继续使用之前的页面。
希望这是有道理的,任何可能指向正确方向的信息都会非常感激!
答案 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并将其存储(仅限用户名),然后保存。 所以你的服务器知道解密。
这使得有人拦截它很难。