代码之家  ›  专栏  ›  技术社区  ›  Austin Hyde

PHP-MVC环境中的登录/授权最佳实践

  •  1
  • Austin Hyde  · 技术社区  · 15 年前

    目前,它的工作方式是每个需要授权的控制器调用其 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原则而言,用户登录的最佳方式是什么?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Clutch    15 年前

    我不确定您是否正在使用会话数据,但我会保存会话的URL路径。重定向到新的LoginController。登录成功后,将浏览器重定向到会话数据中保存的URL路径。会话代码应该是不在控制器中的帮助程序/库代码。确保在满足登录条件后也清除URL路径。

    推荐文章