【问题标题】:User profile/account URLs用户个人资料/帐户 URL
【发布时间】:2010-12-01 23:13:41
【问题描述】:

我需要为用户和管理员提供在 Web 应用程序中编辑帐户和个人资料详细信息的功能。这些配置文件的公共端的 URL 示例如下:

http://example.com/user/joe

我仍然在设计这些 URL 的两种方法之间纠结。我想过这个:

http://example.com/user/joe/edit

或与配置文件无关的非特定内容:

http://example.com/account

第一个的好处是它允许管理员通过相同的功能完成他们的工作。这避免了专门为管理员构建一个完全不同的后端。我想这里的负面影响是我必须小心授权,并确保没有人可以编辑他们不应该编辑的内容。

第二种是一种更标准的做事方式,结果证明它更简单,更容易保护,尽管它意味着管理用户的单独界面。

SO 对此有何看法?这两种方式还有更多的优点/缺点吗?您会推荐使用哪种方法?

【问题讨论】:

  • 为什么要允许管理员更改其他人的个人资料?
  • @Gumbo 因为字段上可能存在垃圾邮件?如果是机器人,要删除帐户?

标签: url web-applications profile


【解决方案1】:

我认为您应该采用第二种方法。它更安全灵活,并且不应该比配置文件内联编辑配置文件更难编码。

【讨论】:

    【解决方案2】:

    我们这样做的方式是管理员和用户共享相同的视图。仅限管理员使用的项目受到保护,用户无法编辑或查看。

    单视图的原因是:

    • 它减少了“移动部件”的数量 - 当新字段添加到用户屏幕时,只需添加一次,
    • 将项目移入/移出用户权限更容易。如果管理层突然决定允许用户管理他们的“FizzBar”,那么我们只需要在一个地方进行更改,并且
    • 在控制器级别分离角色和功能更容易。

    【讨论】:

      【解决方案3】:

      如果您使用的是 MVC 方法,那么我的建议是:

      http://example.com/user/edit/1234
      

      http://example.com/user/edit/joe
      

      如果用户是控制器,请分别编辑控制器方法和 1234 或 joe 用户 ID 或用户名。

      但正如 Gumbo 所说,不应允许管理员编辑用户信息。他们应该有一些机制来禁用帐户,以防个人资料包含令人反感的内容或虚假信息。强制用户更新以再次激活帐户。

      【讨论】:

        【解决方案4】:

        对于具有这样一个安全敏感区域的管理员,我会有不同的看法。它使事情变得更加明确有一个单独的视图。甚至管理员也很可能只能编辑某些用户信息,因此对于编辑自己的用户有不同的视图

        即使两个视图共享一个共同的编辑表单,也使授权更加清晰

        【讨论】:

          猜你喜欢
          • 2011-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-15
          • 1970-01-01
          • 1970-01-01
          • 2019-05-18
          相关资源
          最近更新 更多