gpt4 book ai didi

php - 身份验证是我的域还是我的应用程序的问题?

转载 作者:行者123 更新时间:2023-12-02 01:22:34 25 4
gpt4 key购买 nike

我正在尝试以面向对象的方式设计我的 Web 应用程序的身份验证。这是我的域的问题吗,在这种情况下我会有这样的东西:

$user->authenticate($authenticator);
$user->login($authenticator);

其中 $authenticator 是我的身份验证服务的接口(interface)。

或者这会是一个交叉问题,而我会反过来做。

$authenticator->authenticate($user);
$session->setUser($user);

第一种方式对我来说似乎更“OO”,因为我不必向我的用户对象询问任何内容......它传递身份验证器所需的信息。但感觉我在某种程度上“污染”了我的域...登录不是我的应用程序的业务要求...这是我需要一种身份验证方法来保护我的域的副作用应用程序。

最佳答案

除非您的域将身份验证作为中心概念,否则我会说这是一个跨领域的问题,而不是域模型的一部分。

大多数开发人员编写的业务应用程序的模型与软件安全性完全不同。身份验证是许多应用程序中非常重要的一部分,但实际上与域本身无关。

这并不意味着您不能以面向对象的方式处理身份验证。

Domain-Driven Design术语中,您建模的业务概念是您的核心域的一部分,而您可以选择在通用子域中实现身份验证和其他安全概念。

我无法帮助处理特定于 php 的事情,但在 .NET 中,安全性几乎是由平台处理的事情,如果你做得正确的话。在这里,这是一个真正跨领域的实现问题,所以这就是其他地方的做法(FWIW)。

关于php - 身份验证是我的域还是我的应用程序的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1842373/

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