1

顺便说一句,我正在使用rails 3。

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

我的问题是,当我调用这个时:

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

从机架堆栈上的其他应用程序我得到零!

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

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

我使用的 config.ru 示例:

http://pastie.org/1240732

4

1 回答 1

0

在您的 config.ru 中,您的堆栈不使用守望者。

如果您检查对您的“/”路径的请求,您将立即在 config.ru 中使用您的机架应用程序。守望者 middlkeware 是在 Rails 应用程序上添加的。因此,就像您的机架应用程序调用任何其他机架中间件一样,您无法获得看守信息

您需要在中间件管理员之后定义您的 Rack 应用程序。因为没有 Warden 中间件,就没有可用的warden 功能。

于 2010-10-22T15:34:17.463 回答