管理员和普通用户登录

Login for admin and ordinary user

我应该为普通用户和管理员提供一个登录表单吗? 要么 我应该为管理员和普通用户设置单独的登录表单吗?

如果所需的登录信息相同,您应该只为管理员和普通用户使用一个表单。拥有两种形式只会使应用程序编写起来更加复杂。拥有一个或两个登录表单同样安全。请记住在服务器端实施正确的安全措施,这样用户就不会获得管理员权限。

身份验证的第一步是检查用户名是否存在,然后检查输入的密码是否与数据库中的用户密码匹配(密码应经过哈希处理)。然后你可以做授权检查用户是否是管理员。

表格一样就可以了

登录页面的目的是验证——确定用户是谁,而不是他们可以做什么(参见 What is the difference between authentication and authorization?)。因此,例如,您可能希望他们提交密码或其他令牌,以降低他们不是他们所说的人的风险。这对每个人来说都是相同的过程。

您网站中的某些功能可能仅供管理员或最终用户使用,但权限检查(授权)只能在您确定用户是谁后才能完成(他们已经过身份验证)。并且检查权限的逻辑应该出现在每个页面上。所以它与身份验证过程的关系不大。

虽然这似乎是以意见的形式提出的,但根据大多数 网站(或应用程序)所做的回答更有意义。

这真的取决于上下文。作为一般规则,相同的登录表单将用于普通用户和管理员用户。通常,指定用户是否为管理员的参数将存储在用户的数据库 table 中。单击登录按钮时执行的身份验证方法将验证用户是否存在,根据哈希检查密码,然后检查数据库 table 以查看用户是否为管理员。

在某些特定情况下,我看到过单独的管理员登录页面,但这种情况很少见。一个例子可能是一个网店,它有一个与主站点分开的 administration/management 仪表板。不过,一般来说,这些将通过相同的形式工作。