我正在使用Sinatra在Ruby中编写Web应用程序。该应用程序将具有许多受限制的路由,用户将无法在未经身份验证的情况下访问。我正在使用Warden进行用户身份验证。它适用于验证单一类型的用户。但是,我希望用户具有不同的访问级别。 (目前我希望至少能够区分常规用户和管理员。)我想这是一个常见的要求,但我找不到任何有关如何在Sinatra中实现它的指导。在Sinatra(或更普遍的Ruby)中是否存在基于角色的身份验证/权限的“标准”gem或方法?
我知道用于轨道的cancan宝石(在Sinatra中不可用)和sinatra-can宝石(自2011年以来未维护)。我还读过Warden中“范围”的概念。看起来它们可能就是我所需要的,但是从Warden文档中可以看出它们是否/如何解决我的问题并不清楚。