在具有3个级别的登录系统中,有什么更好的方法在数据库和登录系统中创建表?

这三个级别是:“客户”,“附加”和“管理员”。

“客户”将访问您的所有帐户详细信息,您可以注册“其他”。 “附加”只能访问一些细节。 “管理员”可以注册新的“客户”。

1)只有一个登录URL是否安全,让系统检查用户的级别,然后指向正确的页面?

现场。 com / login如果其他OR客户端将指向 - >站点。 com / client如果管理员将指向站点。 COM /管理

2)或者最好的方法是为客户端和其他站点提供日志文件。 com / client / login以及管理员站点的其他内容。 COM /管理/登入

3)我以为我创建了一个只包含所有用户的ID,登录,密码和LEVEL的表:客户端,附加和管理员,以及查询此表以查看用户是否存在以及可用的资源,然后根据LEVEL在其他表中寻找数据,这是一种安全的做法吗?

4)我还想过使用INNER JOIN在3个表中进行扫描,看看用户是否有权访问系统。 并且让表中的ca级数据完全分开。 这是一个有效的选择吗?

其他想法? 备择方案?

===============>>#1 票数:1

  1. 如果您想要它,单个登录URL就足够了。 您应该将用户的授权级别与其身份验证(他们的登录名,电子邮件等)相关联。 一旦对它们进行了身份验证(登录),您就可以从数据库获取授权并将该信息存储在会话中。 用户无法触摸此内容。

  2. 我认为没有任何好处,但如果你愿意,你可以做到。 您仍然需要检查每个页面上的授权级别,以确定登录用户是否能够看到该页面。

  3. 这在任何特定方面都不是不安全的,但它似乎具有您可能想要的关系完整性。

  4. 这并没有太大的不同,但为每个访问级别设置一个单独的表是没有意义的。 除非访问功能是互斥的,否则最多需要两个表(一个用于用户,一个用于级别)。 如果它们是互斥的,那么您需要第三个用于用户级映射的表,但对您来说情况似乎并非如此。

===============>>#2 票数:1 已采纳

这是一个非常开放的问题。 你肯定想要#1而不是#2。 您不想维护2种登录方法。 只需拥有1个登录页面,并确定用户登录后应该去哪里。

说到#3或#4,我想你会更进一步#3。 让你的表像这样:

ID, login, password, client_permission_level, admin_permission_level

client_permission_level 1 =“additional”client_permission_level 2 =“client”admin_permission_level 0 =“not admin”admin_permission_level 1 =“administrator”

你可以制作一个更复杂的系统,但听起来这会让你开始。 并且,您将能够定义更多级别,例如“super administrator = 2”或“super client = 3”

  ask by Guttemberg translate from so

未解决问题?本站智能推荐: