问题标签 [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 回答
320 浏览

ruby-on-rails-3 - page.should have_content('以 subscribem@example.com 身份登录')

我正在按照Ryan Bigg的《 Multitenancy with Rails 》一书中的步骤进行操作,我遇到了这个错误,但我找不到我做错了什么。

错误:

sign_up_spec.rb

账户模型

用户模型

应用控制器

帐户控制器

应用程序.html.erb

0 投票
1 回答
485 浏览

ruby-on-rails-3 - 由于重定向,设计 JSON API 返回 406 而不是 401

当我试图在没有适当身份验证的情况下请求端点时,我试图设计返回 401 和错误消息。

目前这是正在发生的事情:

在 2013 年 2 月 27 日 02:40:22 +0000 由 HomeController#index 处理为 JSON 完成 401 未授权在 0 毫秒内开始 GET "/api/v1/home/index.json"

在 2013 年 2 月 27 日 02:40:22 +0000 由 SessionsController#new 作为 JSON 处理 127.0.0.1 开始 GET "/api/v1/sign_in.json" 在 1ms 内完成 406 Not Acceptable (ActiveRecord: 0.0ms)

我怎样才能停止设计让我跳到 sign_in 而是让它只返回一个 401/json 响应。

我认为这可能与我尝试过的 CustomFailureApp 有关,但我不确定在这种特定情况下是否调用了 CustomFailureApp。

0 投票
2 回答
10668 浏览

ruby-on-rails - RSpec,在请求规范中验证设计用户

我正在尝试编写 RSpec 请求规范以测试我的服务 API,为此我需要对用户进行身份验证。我在网上找到了一些例子,但没有任何效果,目前我被这个困住了:

我得到的错误是:

谢谢您的帮助。

0 投票
1 回答
3535 浏览

ruby-on-rails - 为守望者声明自定义失败操作不起作用

目前在我的监狱长经理中,我们声明了一个自定义故障应用程序。

但是,对于我的一种策略,我想使用不同的失败操作,因此我尝试在失败中声明自定义操作,如下所示:

甚至在我的控制器操作中:

这是我的失败行动:

但问题是它似乎忽略了它,只调用了我的经理中声明的动作。任何人都知道我可能做错了什么?

0 投票
0 回答
2090 浏览

ruby-on-rails-3 - 使用 Omniauth、Ajax 和 Rails 在模式中登录 Facebook

目前,我正在努力通过社交网络(在本例中为 facebook)从模式中启用登录并使用omniauth。因为成功时需要进行某些 dom 更改,所以我也想使用 ajax 调用。

我在coffeescript中的实际点击功能是:

但是,当它发出 ajax 请求时,它从未真正命中路由中设置的控制器操作。如果我要手动获取或发布为 url,它会正常工作,但尝试跳过它并直接发布到回调路由似乎不起作用。

我还尝试了另一种方法,将其发布到我将链接的网址:

这会击中我的控制器,但是当我尝试通过warden进行身份验证时,将没有设置omniauth参数。所以我有点卡住了。任何人都知道我可能做错了什么?

0 投票
2 回答
1043 浏览

ruby-on-rails - 将已删除的范围与设计身份验证一起使用

我正在使用 Devise 处理 Rails 应用程序中的身份验证,并且正在使用 Permanent_records 软删除用户。我的 User 模型的默认范围是未删除的用户。如果用户删除(停用)他的帐户,我希望他能够通过登录重新激活他的帐户,类似于 Facebook 的做法。问题是,由于 Devise 不知道查找已删除的用户,因此找不到帐户。我考虑过覆盖 session#create 方法

但由于这是由 Warden 处理的,看来我很不走运。我担心如果我开始挖得太深,我会开始破坏东西。

有任何想法吗?

谢谢!

0 投票
2 回答
979 浏览

ruby-on-rails - 自定义 Devise 的 authenticate 和 current_user 方法以使用软删除/充当偏执狂

我正在使用设计作为 rails 3.2 应用程序的身份验证。我的用户模型称为用户,我一直在尝试实现软删除。我正在尝试通过使用acts_as_paranoid 来做到这一点,它会自动为您完成工作。事情按预期工作(其他人无法再看到“已删除”用户),除了我希望停用的用户仍然能够登录并看到“停用”屏幕,并让他们有机会重新激活他们的帐户。

问题是 Devise(Warden?)不再能够找到已删除的用户。如果您使用范围“with_deleted”,Acts_as_paranoid 允许您访问软删除记录。因此,我可以通过以下方式获得其中的一部分:

我把它放到我的用户模型中,所以现在当我输入登录信息时,我会得到我已经成功登录的闪存消息,它会触摸用户模型中的“updated_at”列并增加sign_in_count 等。但是,从经过身份验证的方法返回 false 并且 current_user 辅助方法返回 nil 的意义上,它并没有真正进行身份验证。那么让这些工作的最佳策略是什么?我可以以某种方式覆盖 current_user 方法,以便它使用 with_deleted 范围查询 User 模型吗?我是否必须对warden 做一些事情,例如像使用 find_first_by_auth_conditions 方法那样添加条件?我无法弄清楚如何做到这一点。任何帮助表示赞赏!

另外,在我让它工作之后,我想自动将所有软删除的用户发送到一个“停用”页面,他们唯一的选择是永久删除或重新激活。有没有办法通过“authenticated :user do {} end”路由来做到这一点,还是我必须在 application_controller 中放置一个 before_filter 并在每个请求时检查用户?

0 投票
1 回答
18295 浏览

ruby-on-rails-3 - rails 为特定页面设计 401 未经授权

我无法辨别为什么我的应用返回 401 Unauthorized。我的机构控制器中的其他操作在未登录时工作得很好。但是,这个页面和另一个页面返回 401。如果登录,这些页面工作得很好,但它们不需要登录。我什至已经这样做了至于清空视图和操作,但页面仍然返回 401。通过提琴手调试时,我只收到 302 重定向。

我尝试在其他地方进行研究,并尝试了Warden authentication 的解决方案,即召回 401 Unauthorized没有成功。

安慰

然后我提交表单,方法设置为 GET

相关路线

耙路线

宝石文件

0 投票
0 回答
101 浏览

ruby-on-rails - 发动机的 Warden 故障申请

我有 3 个 Rails 4 beta1 引擎。每个引擎都有不同的守望者策略。所以我的问题是现在我有一个全局故障应用程序。我希望每个引擎都有自己的故障应用程序。怎么做?

对不起英语不好:)

谢谢!

0 投票
1 回答
1328 浏览

ruby-on-rails - 使用 :token_authenticable 设计的自定义身份验证策略

我想知道如何使用设计实现自定义身份验证策略devise :token_authenticable

我已经找到了有关如何使用此处devise :database_authenticatable介绍的模型的说明。

我试图验证的模型名为Pupil。所以这是我目前的策略(位于config/initializers/custom_auth.rb):

在我的config/initializers/devise.rb(也没有尝试过:scope => :pupil):

所以这应该会导致用户无法登录,但不知何故,这种策略在从 切换devise :database_authenticatable到时不适用devise :token_authenticable

也许我只是错过了:scope这里的权利。

现在,奇怪的是:每当用户输入无效的令牌时,我的策略就会被调用并且“你不能通过!” 被退回。但是,当提供正确的令牌时,用户可以正常登录。