c++ - 编程逻辑

标签 c++ authentication logic

我对编程逻辑有疑问,请查看以下示例:

public function logout() {
     if (Auth::user()) {
         Auth::logout();
     }
}

在上面的例子中,我们首先检查用户是否登录。在这个函数中,我们可以说只有登录的用户才能注销,但是如果你只有登录才能访问“注销”功能,那就是一样的。哪个更好,为什么?我遇到过很多这样的事情,但我不知道该选择哪一个。

最佳答案

虽然您应该只有在已经登录的情况下才能访问此功能,但这在您的代码中只是一种很好的做法。此处封装的方法确保它是在有意义的上下文中调用的。

这真正重要的原因可以通过许多有缺陷的网络应用程序(和其他)的例子来说明,其中代码假定用户只能选择他们所看到的选项。但是,用户实际上可以调用 Web 应用程序中任何公开公开的函数,而不管该函数是否显示在 HTML 界面中。

因此,开发人员必须确保调用函数的上下文是有意义的。在您介绍的情况下,类创建者有一个特定的用法,您和我都可以理解,只有在您登录后才能访问它,但是开发人员不能对其他用户强制执行此操作,除非他包含这样的逻辑(或者,也许,在他公开的方法中检查访问是否被允许而不是用户是否登录)。

关于c++ - 编程逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30170383/

相关文章:

c++ - OpenGL:Radeon 驱动程序似乎与深度测试混淆

c++ - OOP 设计 - 处理 Foo 对象的整个序列

c++ - 扩展类并保持二进制向后兼容性

java - 为什么我的程序无法创建新的 JAAS 登录上下文?

java - LibGDX 翻转 2D Sprite 动画

javascript - 生成重新格式化的文本列表

c++ 技巧与 *& 是什么意思?

python-2.7 - 带有 flask 身份验证 :multiple HTTP method with different authentication 的 flask Restful

asp.net-mvc - ASP MVC Preview 5 和 IIS 6 Windows 身份验证

c - (生命游戏)如何在不检查矩阵外部的情况下循环遍历矩阵的外层,同时检查邻居?