Padrino的身份验证和授权解决方案

时间:2011-09-07 11:06:03

标签: padrino

我已经和Sinatra和Padrino一起编程已经有一段时间了。但是,我仍然无法为Padrino找到正确的身份验证和授权解决方案。让我解释一下我的期望和我已经尝试过的内容。

使用Sinatra,我成功地使用sinatra-authentication gem以及role_model gem。我通常使用Mongoid ORM与MongoDB交谈。这两个宝石让我一起照顾认证,保护路线,检查登录用户的角色以应用访问控制。

sinatra-authentication不适用于Padrino - 它对Sinatra非常具体。我多次尝试过。我已经用相应的Padrino模块尝试了omniauth和warden,但出于某种原因,我无法让它们像美妙的sinatra-autentication gem那样简单地工作。

所以 - 在我尝试实现我自己的解决方案(或将sinatra身份验证移植到Padrino)之前 - 有人可以建议任何其他身份验证和授权解决方案吗?目前我不需要任何想象力 - 简单的基于数据库的身份验证将完美地工作。

4 个答案:

答案 0 :(得分:3)

我知道问题是两年了。但是我最近仍然遇到了padrino-warden严重记录的麻烦,我遇到了很多问题。所以我在workaround.org上记录了我的发现。愿它帮助那些不幸的人。

我认为padrino-admin是一个很好的脚手架可供学习。但用户模型相当不灵活。授权概念奇怪地做了Padrino的作者不喜欢的事情:将配置路径放在中央位置而不是将配置移动到控制器中。 (padrino-admin还有一些问题,例如缺少分页和缺少对外键的支持。因此它与Django提供的内容无法远程比较。)

答案 1 :(得分:1)

Padrino has been discussed的独立身份验证解决方案,但尚未解决。同时,一个流行的建议是使用padrino-warden

免责声明:我的情况与OP类似,并且没有在生产中担任个人监护人的经验。

答案 2 :(得分:1)

Ryan Bates有一个很棒的Rails截屏视频如何做到这一点(不是免费的:http://railscasts.com/episodes/250-authentication-from-scratch-revised)。

调整Rails Magic并为Sinatra或Padrino做同样的事情应该不会太难。

现在,如果您需要大量的功能,例如忘记密码等,这可能不太适合。但是再一次,那些不应该太难以适应。

答案 3 :(得分:0)

我建议使用内置身份验证解决方案,只需看看padrino-admin,就可以在任何需要的应用程序中使用Padrino :: Authentication而无需管理员。

这很简单,基于角色/路径。

http://www.padrinorb.com/api/Padrino/Admin/AccessControl/Base.html#allowed%3F-instance_method

相关问题