gpt4 book ai didi

PHP OOP - 如何处理身份验证?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:06 26 4
gpt4 key购买 nike

我正在为我的想法构建一个管理系统。我精通 PHP(至少足以完成我需要做的所有事情),但我在使用 OOP 方面经验不足。我尽可能多地使用它,但很多最佳实践我都不熟悉,所以当我做事时,我担心我做错了顺序。

对于这个项目,我有一个用户正在管理的类,我需要检查用户是否有管理它的权限。我知道如何检查权限,我的问题是:我应该在哪里检查?

我应该在课外做吗,像这样:

if user permissions are valid
initialize class
else return error

或者我应该做什么

initialize class
class checks permissions
class returns error if permissions are invalid

我不确定哪种方法是正确的。一方面,根据我对 OOP 方法的了解,在类中进行检查似乎是最好的方法,但我也有一种感觉,在权限未知时让它尽可能地初始化类可能是不好的。

我应该怎么做?如果有任何类型的文章涵盖此类内容,将不胜感激(我无法通过搜索找到任何内容,但我不能 100% 确定我是否在寻找正确的东西,因为我对 OOP 知之甚少)

最佳答案

这取决于您的权限模型,没有“唯一正确的方法”。这是一个方法问题。重要的是,无论您选择什么,都要始终如一地使用它。

在我最近的项目中,我遇到了几种不同的模型。最直接的一种是基于页面的权限,如果您执行基于页面的流程并使用对象作为支持,这很好:您在页面顶部定义谁应该访问它,以防您可以重定向。这是最简单的一个,但在特定应用程序中可能非常有用。

相反,如果您使用对象来完成您的主要流程,您应该保护您的对象方法(而不是类实例化)。如果您有一个只能由特定用户调用的“save()”方法,那么当您输入该方法时,首先要检查您的权限。

我目前正在使用 MVC 模式,并且我有一个 Controller ,它将操作分派(dispatch)给它的子级。它唯一的公共(public)方法是 execAction($params),它会在自身上调用 actionAction($params),但首先它会检查权限。

要记住的一件重要事情是:永远不要在 UI 上呈现用户不允许执行的操作(除非您试图强制他购买您的“专业版”,即);-)

关于PHP OOP - 如何处理身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3092433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com