【问题标题】:Ruby on Rails Devise Adding AdminRuby on Rails 设计添加管理员
【发布时间】:2013-11-30 22:07:07
【问题描述】:

我正在尝试创建一个拥有 1 名管理员和许多用户的网站。管理员可以控制所有用户。

我正在使用:
- Rails 4.0
- 设计 3.2
- Sqlite3

我已经生成了一个用户模型,并按照说明使用选项 2 向用户模型添加属性。https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role

在数据库中,它将 admin 的布尔值设置为 false。允许从数据库进行管理员控制是否安全?

我很好奇,因为密码没有存储在数据库中,而是存储了一个加密的字符串。

还有其他方法可以创建管理员吗?我试图遵循选项 1,但它给我带来了很多麻烦。

【问题讨论】:

  • 您说“我很好奇,因为密码没有存储在数据库中,而是存储了一个加密的字符串。”为什么您认为加密字符串不如明文密码安全?将明文密码存储在任何地方都是非常糟糕的做法。
  • 是的,我理解您为什么不应该存储明文密码。对不起,如果我不清楚 - 我相信加密的字符串更安全。既然我们不存储文本密码,为什么要在数据库中存储访问整个站点的选项?
  • 选项 1 还将对整个站点的访问存储在数据库中,只是在不同的表中。如果您不在数据库中存储管理员凭据,您会将其存储在您认为更安全的位置吗?在实践中,我不会推荐 sqlite3。由于您使用的是 Heroku,我会推荐 PostgresSQL。
  • 我不确定。它可能是一种方法吗?我的想法是该方法将描述第一个注册的用户 == admin。那将永远不会在数据库中具有管理属性。使用 Postgres 的主要区别是什么?

标签: ruby-on-rails sqlite devise ruby-on-rails-4 admin


【解决方案1】:

我发现问题已经以不同的方式提出了

Rails Devise - Admin role, model vs attribute

选项 1 更安全,使用选项 2,任何人都可以添加参数 admin=true。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多