顺便说一下,我正在使用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示例我使用:
答案 0 :(得分:0)
在你的config.ru中,你的堆栈不使用看守。
如果您检查了对“/”路径的请求,则立即使用您的config.ru中的Rack应用程序。 warden middlwareware是在Rails应用程序上添加的。因此,就像您的机架应用程序调用任何其他机架中间件一样,您无法获得监护人信息
您需要在中间件监管人员之后定义您的Rack应用程序。因为没有Warden Middleware,就没有可用的监护人能力。