问题标签 [clearance]

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 投票
1 回答
47 浏览

ruby-on-rails - 用户清仓 gem 查询次数过多

我正在使用清除宝石进行身份验证,它工作得非常好。但是,我发现它的问题是,它减慢了应用程序的速度。通过仔细研究,我发现它为页面请求的每个资产(JavaScript、CSS 和图像)获取用户。

谁能建议我可以解决这个问题?

提前致谢

0 投票
1 回答
123 浏览

ruby-on-rails - Sign Out all Users With Clearance

We have an update coming for which we need all users to sign out and sign in again.

I've tried changing the key in session_store.rb but that doesn't work. We are using Clearance for authentication, so was wondering if there is a way to end all current sessions with clearance forcing everyone to sign-in again?

0 投票
2 回答
1458 浏览

ruby-on-rails - 带有清除密码重置问题的 Rails 4

我正在使用身份验证 gem 'clearance' 构建 Rails 4 应用程序。我有点陷入以下问题:

当用户忘记他/她的密码并想设置新密码时,找不到用户。(但存在于数据库中),这是服务器日志:

但是当用户登录时,他或她可以更改密码并且登录也可以正常工作..

我认为问题出在查询中,我正在发送带有表单的 id,但是当 id 到达查询时,它说 IS NULL。但是我已经为此苦苦挣扎了几个小时,但找不到解决方案。

7次请求缓存也有问题吗?

提前致谢!

更新

更改了强参数和“find_user_by_id_and_confimatrion_token”方法,如下所示:

这是 :user_id,这不是参数的名称。

但这会引发另一个错误:

它说用户已经存在,并回滚更改。因为这是一个更新,所以用户必须存在。

更新 2

我仍在尝试解决此问题,这里是正在编辑密码的登录用户与通过密码忘记方法(未登录)之间的区别

登录用户更改密码

忘记密码并输入新密码的用户

仍然期待 Put/Patch 方法和所有缓存警报。这对我来说似乎很相似..我尝试使用patch http方法,但没有帮助。

更新 3

还有我的控制器代码,它与 Clearance::PasswordsController 几乎相同。删除了我的问题未调用的方法。

0 投票
1 回答
68 浏览

ruby-on-rails - 用户模型中的间隙单元测试?

所以我一直在为此绞尽脑汁,也许你们中的一些人可能对如何为这个用户模型进行适当的单元测试有更好的想法。我的基本单元测试如下所示。

此模型通过此测试。

在 Clearance 中是否有更好的方法来做到这一点?很高兴 gem 可以让您通过任意分配电子邮件和密码来即时创建这样的用户,但我想也许我不应该这样做。

0 投票
4 回答
1435 浏览

ruby-on-rails - 清除 RoR4 中的其他 strong_parameters

我正在使用clearance gem,它基本上是通过电子邮件进行的身份验证。

现在我想通过电子邮件保持登录,但想在用户的注册表单中添加一个“名称”字段。

用户.rb

users_controller.rb

如您所见,我添加了权限.save,但应用程序仍应请求向我抛出以下错误:

ActiveModel::ForbiddenAttributesError in Clearance::UsersController#create

如果我:name从表单中删除文本字段,一切正常,但我想要表单的其他字段。

0 投票
1 回答
183 浏览

ruby-on-rails-3 - 添加acts_as_tenant后用户无法登录

我正在使用 Clearance 进行身份验证,并使用acts_as_tenant 来设置租户

用户.rb

application_controller.rb

公司.rb

日志

每当我默认登录时,它都会使用 company_id=1 并且身份验证失败。我已经尝试了所有方法,但是当我在用户模型中注释掉 act_as_tenant(:company) 时,它工作正常,请帮助!

0 投票
1 回答
1245 浏览

ruby-on-rails - 使用 Clearance 的“未初始化常量”路由错误

我正在使用 Clearance 进行身份验证,并尝试根据用户是否登录来设置 root。登录、注销和创建/删除用户工作正常。

我正在关注Thoughtbot 的这篇文章,我在其中为我的路线添加了一个约束。

我还在 /lib/clearance 中创建了 signed_in_constraint.rb 来执行检查:

如果我打开 rails 控制台并检查 Clearance,我没有收到任何错误,因此它正在加载 Clearance 模块,而不是从 lib 加载 SignedInConstraint。

根据这张票,我还多次重新启动了我的服务器(运行 Anvil 和 PostgresApp)根据 Github repo 上的

在 Ruby 2.0 上使用 Rails 4。

谢谢

0 投票
1 回答
1541 浏览

ruby-on-rails - 试图在 Thoughtbot 的 Rails Clearance gem 中覆盖控制器

我正在使用Clearance 1.1.0 gem 和 Ruby on Rails 4.0.1。我正在尝试覆盖会话控制器以提供我自己的自定义方法。我无法成功让 rails 使用我的控制器。

/app/controllers/sessions_controller.rb

我在我的 routes.rb 文件中尝试了一些不同的东西,但都没有成功。我想更改路线登录。

产生以下错误。

您可能已经使用该:as 选项定义了两个具有相同名称的路由,或者您可能正在覆盖已由具有相同名称的资源定义的路由。

有任何想法吗?谢谢!

编辑:我犯了一个错误。我实际上需要 session#create 来使用我的控制器。当会话登录失败时,我正在尝试将不同的变量传递给闪存的 yaml 文件。

编辑 2:我将适当的 session#create 行添加到我的路线。在我的会话控制器中,我复制并编辑了用于测试 flash_failure_after_create 方法。它没有被调用。因此,我将 create 方法复制过来。现在,我的 create 方法被调用,但不是我的 flash_failure_after_create 方法。为了让它被调用,我必须从 gem 复制 create 方法,并将 status.failure_message 更改为直接调用 flash_failure_after_create 方法。这是某种清除错误吗?

路线.rb

session_controller.rb

0 投票
1 回答
706 浏览

ruby-on-rails - 在 Rails 应用程序中使用 User 以外的模型进行间隙认证

我有一个 Rails 应用程序,它使用许可和 cancan gem 进行身份验证和授权。最初,应用程序使用 User 模型作为 Clearance 使用的 user_model。现在,由于一些设计更改,我们希望有另一个模型类 Person 被 Clearance 用作 user_model。Person 模型已经就位,并且在应用程序上下文中具有特定于 Person 模型的列。

Rails 版本:3.2.14
Ruby 版本:1.9.3-p487
清除版本:0.16.3

为此,我们进行了以下更改:

  1. Clearance 所需的字段(email、encrypted_pa​​ssword、remember_token、salt、confirmation_token)从 User 模型迁移到 Person 模型。
  2. 使 Person 模型包括 Clearance::User
  3. 按照http://rubydoc.info/github/thoughtbot/clearance/frames中的建议,将 Clearance 初始化程序更改为设置 *user_model = Person*

    /li>
  4. 更新了 Person 模型的工厂定义,如下所示:

    /li>

在这些更改之后,当我运行与人员相关的规范时,它无法使用工厂创建人员对象。我得到以下问题。

我参考了文档,关于清除组的谷歌组主题,论坛帖子,但无法解决问题。有没有人做过类似的?你能帮我解决这个问题吗?

0 投票
1 回答
99 浏览

ruby-on-rails - 从 Rails 2.3 升级到 4.1 后无法登录现有的 Clearance 帐户

正在升级旧的 Rails 2.3 应用程序以使用 Rails 4。到目前为止,一切都运行得很好,除了将 Clearance 升级到最新的稳定版本后,我不再能够登录现有的用户帐户。没有错误,除了错误的电子邮件或密码。我也可以创建新帐户并正常登录,但现有帐户无法访问,如果可能的话,我希望不必为用户重置数百个密码。

我知道 Clearance 在 Rails 2.3 之后使用的版本中开始使用 BCrypt 而不是 SHA1,所以我设置了config.password_strategy = Clearance::PasswordStrategies::SHA1/config/initializers/clearance.rb的,以便让它使用与创建帐户相同的加密。但这并没有解决问题。

有什么建议么?我觉得在旧应用程序的某处设置了某种其他类型的“秘密”密钥,我需要将其带到新应用程序才能使登录解密工作,但我对这种事情还不太了解.

谢谢!