有专门的注销页面的原因
问题描述:
在基于用户的网站中,网站使用类似“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变量触发,或者以其他方式触发。
我唯一的猜测是为什么它是如此受欢迎(谷歌,Facebook等,最后我做了这个检查)使用单个专用文件的注销过程,它可以简单地引导用户到页面(logout.php ),无论如何,只要页面加载并正确执行,它们将被注销。你能想到两种方法都有什么好处吗?
答
这不一定是它自己的文件。在大多数情况下,该网站正在运行一个MVC,其中url参数被解析为类方法。因此,尽管您正在访问host.com/account/logout
- 您只需简单地以最简单的方式从account
类(以其最简单的形式)调用logout()
方法即可。
你会认为这可以通过在客户端删除cookie来完成,但最好的做法是也销毁服务器存储的会话,这样任何人都无法恢复(比如攻击者)
答
我能想到的最大优点是它允许开发人员保留<a href="logout.php">logout</a>
类型的注销按钮,这些按钮不依赖于jquery或任何其他客户端JavaScript来注销。您只需将它们重定向/链接到另一个页面,该页面负责删除其会话数据。
它只是一个简单而简单的URL。有时候人们甚至更喜欢在URL中输入它,我知道我是这样做的!
'PHP框架'使用'方法'注销用户。 – 2013-04-10 06:20:39
@YogeshSuthar哪个框架? – 2013-04-10 06:21:24
也许所有的人,关键是 - 你会写这个方法和存储在任何你想要的,只是为了更好地描述,“website.com/logout”这里是注销是一种控制器的方法,如“用户”设置路由到他,检查什么是MVC,并开始我推荐CodeIgniter框架,他对新编码人友好 – MyMomSaysIamSpecial 2013-04-10 06:22:37