5

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

使用 Sinatra,我成功地使用了sinatra-authentication gem 和role_model gem。我通常使用 Mongoid ORM 与 MongoDB 对话。这两个 gem 一起让我负责身份验证、保护路由、检查登录用户的角色以应用访问控制。

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

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

4

4 回答 4

3

我知道这个问题已经两年了。但是我最近仍然遇到了 padrino-warden ist 记录不佳的问题,并且我遇到了很多问题。所以我在workaround.org上记录了我的发现。愿它帮助不幸的人。

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

于 2014-01-19T12:22:42.673 回答
1

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

Rails Magic适应客场并为西纳特拉或帕德里诺做同样的事情 应该不会太难。

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

于 2012-04-17T13:47:47.640 回答
1

已经讨论了针对 Padrino 的独立身份验证解决方案,但尚未解决。同时,一个流行的建议是使用padrino-warden

免责声明:我的情况与 OP 类似,并且还没有在生产中运行个人看守的经验。

于 2011-10-28T14:37:38.123 回答
0

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

它非常简单,基于角色/路径。

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

于 2011-09-07T22:43:29.057 回答