问题标签 [warden]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
753 浏览

ruby-on-rails - 典狱长:续订选项

我正在使用 devise (1.5.3) 和warden (1.1.1),我不需要在用户登录/注册后更新 session_id

https://github.com/hassox/warden/blob/master/lib/warden/proxy.rb#L160

转储选项:

如何配置 devise/warden 不将 options[:renew] 设置为 true ?

0 投票
2 回答
1875 浏览

rack - Rack Warden:我如何访问传递给失败的消息!方法?

当 Warden 中的身份验证策略失败时,可以将消息传递给该fail!方法。如何在我的默认失败应用程序操作中访问此消息,以便我可以将其显示在 Flash 消息中?我试过request.env['warden'].message了,但是在查看了Warden::Proxy这个变量的代码之后,它只是为获胜策略设置的。想法?

0 投票
1 回答
783 浏览

ruby-on-rails - 使用“记住我”选项注销用户时设计使用 record=nil 调用的 before_logout 钩子

我正在使用 Devise 2.0.4(带有 devise-neo4j)、Warden 1.1.1、Rails 3.2.3。
当我在未选中记住我选项的情况下登录时,我可以毫无问题地退出。
但是,当我使用记住我选项登录时,我无法退出。
挖掘代码我发现devise-2.0.4/lib/devise/hooks/forgetable.rb( Warden::Manager.before_logout do |record, warden, options|) 中的 before_logout 钩子是用record => nil.
我不确定是 Devise 的 bug,Warden 的还是我的……</p>

堆栈跟踪如下:

0 投票
1 回答
1490 浏览

ruby-on-rails - 使用 token_authenticateable 时,使用多个范围登录的用户进行设计

我正在使用具有多个范围(在本例中为用户范围和管理员范围)的 Devise,并且管理员能够使用Devise wiki 上的方法“成为”用户。这很好用,除了我有一个特定页面需要使用身份验证令牌,这会导致在用户和管理员范围内登录的会话出现问题。该页面向控制器生成 POST,该控制器要求用户使用用户身份验证令牌登录。POST 成功,但之后,管理员范围已注销。(意味着 admin_signed_in? 返回 false。)其他页面执行 POST 到同一控制器而不需要 auth 令牌按预期工作,而无需注销 admin 范围。

我怀疑 token_authenticable 发生了一些事情,其中​​除与该特定令牌关联的范围之外的任何范围的身份验证都被注销。我在设计 gem 源中搜索了对设计 sign_out 和warden logout 方法的引用,这些方法可以作为 token_authenticable 功能的一部分调用,但找不到任何东西。

Devise 1.3.4 正在发生这种情况。任何帮助表示赞赏。

0 投票
1 回答
1278 浏览

ruby-on-rails - 为什么 Warden/Devise 在登录身份验证失败时附加资源名称?

我一直在疯狂地搜索这个,到目前为止还没有运气。

到目前为止 sign_in 和 sign_out 工作正常。他们重定向到正确的行动。我的问题是登录失败时。我被发送到一个看起来像空白的 html 页面,显示“无效的登录名或密码”。由create 操作呈现或由 create操作呈现的文本。AFAIK创建应该只在失败时重定向或呈现。我有一个自定义控制器,我拥有此处列出的设计代码的唯一原因是查看行为发生的位置。我现在真的只需要继承行为,因为我不想在身份验证后重定向到自定义路径。

日志内容如下:

这是我的控制器:

我的路线如下:

我确定它没有通过

身份验证失败时的线路

资源名称似乎在监狱长失败时以某种方式附加到登录路径。例如 /login.user 而不是 /login

任何帮助将不胜感激,在此先感谢。

Rails 3.2、Devise 2.0.4、机架 (1.4.1)、ruby 1.9.3

0 投票
4 回答
4657 浏览

ruby-on-rails-3 - 防止在 Rails 3.2.2 上为 RESTful api 创建会话

如何防止会话存储在 JSON/XML 调用上创建会话?

我的问题是我将会话保存在数据库中,并且它被多个 api 调用淹没。

我正在使用 Rails 3.2.2 和 Devise 进行身份验证。

0 投票
2 回答
2315 浏览

ruby-on-rails - 带有 Devise 和 rspec 的 Rails 3:Warden 测试助手不可靠

我有一个使用 rails 3.2 和 Devise 的应用程序。我有一个使用 rspec 和 Capybara 的请求测试套件。

我试图在我的登录助手中使用 Warden 测试助手,而不是让 Capybara 填写登录表格并提交。由于我的测试套件的大小和复杂性,这会在我的测试运行时节省超过一分半钟。

在我的配置中是:

在上下文中:

但是,当使用这些配置运行测试套件时,几乎每个测试运行都有一个不同的随机失败请求规范,因为页面呈现为好像用户没有登录一样。(具体来说,由user_signed_in?条件控制的链接)

我的问题:有没有其他人遇到过这样的不可靠性,如何缓解?

0 投票
1 回答
846 浏览

ruby-on-rails-3 - 当我尝试通过 ajax 进行身份验证时,Warden 策略中的参数为空

我正在尝试在我的 rails 应用程序中使用 Warden 进行身份验证。如果我通过 POST 请求以常规形式使用它,它工作正常。但是当我将它移到 Backbone.js 时,我发现验证了!方法总是调用我的失败应用程序。

我在身份验证中放置了一些日志记录!方法,发现params hash为空。像那样:

它生成一个空输出: Warden 内部的参数:{}

同时我可以在 env['warden'].authenticate 之前看到控制器中的参数!叫做。我只能猜测我的参数去了哪里。我究竟做错了什么?

0 投票
4 回答
6692 浏览

ruby-on-rails-3 - 在功能性 Rails 测试中为 authenticate_user 引发设计守望者错误

我有一个资源,其中新操作需要用户登录才能查看。如果用户在未登录的情况下尝试创建新资源,他们将被重定向(302'd)到登录页面。我的功能测试如下所示:

堆栈跟踪看起来像这样:

在新操作之前,我有一个 before_filter 来验证用户。

我明白为什么要进行身份验证用户!失败了,但我不明白为什么它会抛出错误。它不应该像在 webapp 中那样运行吗?将用户重定向到登录页面?

谢谢。

0 投票
1 回答
199 浏览

ruby-on-rails-3 - 不能用康康

我正在关注 cancan 的 rails casts 第 192 集 (http://railscasts.com/episodes/192-authorization-with-cancan?autoplay=true)。

我有 ruby​​ 1.9.3 和 rails 3.2.3

我的 gem 文件有这个内容

在 environment.rb 文件中我添加了

当我运行 bundle 命令时,我看到了这个......

现在我的问题是:当我跑步时:

那为什么我会看到这个:

以及在我的 gem.lock 文件中为什么它显示...