【问题标题】:How can I use devise's "warden" to authenticate a rack app in the same stack as the rails app that uses devise?如何使用 devise 的“warden”来验证与使用 devise 的 rails 应用程序位于同一堆栈中的机架应用程序?
【发布时间】:2011-04-29 05:47:19
【问题描述】:

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

如何使用 devise 的“守望者”在同一个机架应用程序中进行身份验证 stack 作为使用 devise 的 rails 应用程序?

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

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

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

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

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

我使用的 config.ru 示例:

http://pastie.org/1240732

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 1.你能改写第一个短语,让它有一些含义和可以理解的语法吗? 2. 不是从我的 rails 应用程序中设计,将warden 自动放入机架堆栈吗?
    • 我解决了这个问题:stackoverflow.com/questions/4009082/…
    猜你喜欢
    • 2011-08-07
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 2016-06-18
    • 2012-02-08
    • 1970-01-01
    相关资源
    最近更新 更多