PHP MVC环境中的登录/授权最佳实践
我正在使用一个自制的面向MVC的框架,需要实现一个登录页面 目前,它的工作方式是每个需要授权的控制器调用其PHP MVC环境中的登录/授权最佳实践,php,model-view-controller,authorization,Php,Model View Controller,Authorization,我正在使用一个自制的面向MVC的框架,需要实现一个登录页面 目前,它的工作方式是每个需要授权的控制器调用其authorize()方法,该方法在伪代码中如下所示: protected function authorize() { if (logged in) { return true; } if (login form submitted) { authorize/validate username/password if
authorize()
方法,该方法在伪代码中如下所示:
protected function authorize() {
if (logged in) {
return true;
}
if (login form submitted) {
authorize/validate username/password
if (!valid) {
render login form
return false;
} else {
mark user logged in
return true;
}
} else {
render login form
return false;
}
}
我想将此逻辑移动到它自己的LoginController,但这需要“记住”原始请求的目的地,保存所有POST和GET数据,然后执行重定向以访问LoginController
就好的MVC设计和KISS原则而言,用户登录的最佳方式是什么?我不确定您是否在使用会话数据,但我会保存会话的URL路径。重定向到新的LoginController。满足登录条件后,将浏览器重定向到会话数据中保存的URL路径。会话代码应该是不在控制器中的帮助程序/库代码。确保在满足登录条件后也清除URL路径。您是否了解了Symfony如何处理此问题?他们的网站上有很多文档。@Jan:没有,我会看一看。谢谢你的提示。从KISS的角度来看,我将使用http基本身份验证,并在web服务器(apache?)中配置它。这样你就不必为此费心了。+1我也在寻找同样的东西。自从我问起,我发现这不仅是最好的方法,也是最简单的实现方法。