我如何使用devise的“warden”来验证与使用设计的rails应用程序在同一堆栈中的机架应用程序?

时间:2010-10-22 15:28:14

标签: ruby-on-rails authentication rack devise warden

顺便说一下,我正在使用rails 3.

我如何使用devise的“warden”来验证机架应用程序 如同使用设计的rails应用程序堆栈?

我的问题是,当我这样称呼时:

request.env['warden'] # nil :(

来自机架堆栈上的其他应用程序我没有!

我通过config.ru在我的rails app中集成了dav4rack(webdav)。 我在我的rails应用程序中使用devise进行身份验证。

当我尝试从我的自定义dav4rack资源访问“warden”时, request.env ['warden']我没有了。 如何在我的dav4rack资源中使用warden进行身份验证?

config.ru示例我使用:

http://pastie.org/1240732

1 个答案:

答案 0 :(得分:0)

在你的config.ru中,你的堆栈不使用看守。

如果您检查了对“/”路径的请求,则立即使用您的config.ru中的Rack应用程序。 warden middlwareware是在Rails应用程序上添加的。因此,就像您的机架应用程序调用任何其他机架中间件一样,您无法获得监护人信息

您需要在中间件监管人员之后定义您的Rack应用程序。因为没有Warden Middleware,就没有可用的监护人能力。