在我的 MVC 应用程序中有 5 种类型的用户:
guest, customer, deliver person, staff and admin
如果某个用户尝试查看他们无权访问的页面,他们会被重定向到某个页面,并且脚本的其余部分将被终止。
例如,如果客户或送货员尝试查看他们无权访问的页面,他们会被重定向回,http://www.mysite.com/members/
或者例如,如果客人尝试访问会员区域,他们会被重定向到登录页面。
我的Auth
班级会进行检查,并且还负责登录过程。
一旦$auth->login($username, $password)
验证了它调用的登录详细信息
$this->http->redirect()
在login()
方法的底部。
public function redirect() {
if($this->auth->isLoggedIn()) {
switch($_SESSION['accountType']) {
case 1:
$url = $this->config->setting('url.members');
break;
case 2:
$url = $this->config->setting('url.members');
break;
case 3:
$url = $this->config->setting('url.staff');
break;
case 4:
$url = $this->config->setting('url.admin');
break;
}
}
else {
$url = $this->config->setting('url.base') . 'login';
}
$this->setHeader('Location', $url);
}
该$http->respond()
方法稍后会被调用,它会发送任何添加的标题(如上面添加的“位置”)。
我认为该redirect()
方法正在做它不应该做的工作,但我不确定。对我来说,我的班级似乎Http
不应该检查人们是否登录以及人们拥有什么类型的帐户,它应该只做诸如添加标题并将响应发送回客户端之类的事情,但这样做似乎是错误的类中的一个redirect()
方法,Auth
因为那应该只处理授权。
任何想法都会非常感谢。