Ruby Sinatra - 使用身份验证保护路由

时间:2013-04-04 20:35:31

标签: ruby authentication routes sinatra

我有一个Ruby类,它基本上将用户验证到LDAP目录,如下所示。 DirectoryUser类正在使用net / ldap gem来执行此操作。调用时,如果用户通过身份验证,则返回“true”,否则返回“false”。

>>DirectoryUser.authenticate('user', 'password')
  #True

我想使用此机制来保护基本Sinatra应用程序中的多个用户的路由。

  1. 是否有推荐的方法来遵循最佳做法?
  2. 有人可以说明如何实现这一目标吗?
  3. 我在考虑设置变量并在允许访问路径之前检查变量的状态。但是,我不禁想到这里可能会遗漏一些安全隐患!

2 个答案:

答案 0 :(得分:1)

它位于Sinatra FAQ.

基本上,您需要创建一个帮助方法,如果用户未经过身份验证,则会抛出异常。

答案 1 :(得分:0)

由于您已经在使用LDAP库进行身份验证,因此最佳做法是使用Warden之类的内容进行授权。我们使用多种身份验证方法(基本身份验证,Twitter身份验证,LDAP身份验证)从这个应用程序中得到了很好的使用。