在基于用户的网站中,网站使用像“logout.php”这样的网页是很常见的,我甚至在自己的项目中自己使用它们,但现在我想知道为什么。所以我的问题是:使用专用文件注销用户有什么特别的优势吗?如果只是在任何适当的类中创建方法,那么它是否更有条理,例如:
这是一个用PHP编写的示例(这与我开始使用的类似):
public class Admin {
private function logout() {
$_SESSION[ADMIN_ACCESS_KEY] = null;
unset($_SESSION[ADMIN_ACCESS_KEY]);
return ($_SESSION[ADMIN_ACCESS_KEY]) ? false : true;
}
}
此函数将由某些$ _POST或$ _GET变量或任何其他方式触发。
我唯一的猜测是为什么它如此受欢迎(谷歌,脸谱等等,最后我检查了)使用单个专用文件进行注销过程它只需将用户引导到页面(logout.php)如果页面加载并正确执行,它们将无论如何都会被注销。你能想到这两种方法的任何好处吗?
答案 0 :(得分:1)
它不一定是自己的文件。在大多数情况下,站点运行MVC,其中url参数被解析为类方法。因此,虽然您正在访问host.com/account/logout
- 但您只需在浏览器中以最简单的方式调用logout()
类中的account
方法(最简单的形式)。
您认为可以通过简单地删除客户端上的cookie来完成此操作,但最佳做法是销毁服务器存储的会话,因此任何人都无法恢复(如攻击者)< / p>
答案 1 :(得分:0)
我能想到的最大优势是它允许开发人员保留<a href="logout.php">logout</a>
类型注销按钮,这些按钮不依赖于jquery或任何其他客户端javascript来注销。您只需将它们重定向/链接到另一个页面,该页面负责删除其会话数据。
它只是一个简单明了的URL。有时人们甚至更喜欢在URL中输入它,我知道我这样做!