问题标签 [bcrypt-ruby]

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 回答
234 浏览

ruby-on-rails-3 - Rails 3 生产服务器抱怨 bcrypt-ruby gem 不是捆绑包的一部分

从 cap deploy 的以下输出摘录中可以看出,** [out :: 178.79.170.199] Using bcrypt-ruby (3.0.1)我的服务器上安装了 bcrypt-ruby gem,但 unicorn 无法正常启动并抱怨 bcrypt-ruby gem 不是捆绑包的一部分。

更新 - 确切的错误消息是

我已经重新启动了我的 nginx 服务器和独角兽。

我怎样才能解决这个问题?

控制台输出的摘录来自cap deploy

我安装的其他 gem 没有问题。

0 投票
1 回答
320 浏览

ruby-on-rails - bcrypt-ruby 如何掩盖被黑数据库的密码?

我试图了解如何has_secure_password工作。在 bcrypt-ruby网站上有以下示例说明如何使用它。password上课的方法User让我很困惑。看起来代码@password ||= Password.new(password_hash)采用加密的哈希并返回未加密的密码。仅从加密的哈希中恢复密码是不可能的。我在误解什么Password.new

用户模型

创建帐户

验证用户

0 投票
2 回答
1214 浏览

mongoid - 如何使用 bcrypt 和 mongoid 保护用户密码

我刚刚开始使用MongoDB,特别是Mongoid.

自然,我想确保我User的密码保持良好和安全,以前我会这样做ActiveRecord并使用bcrypt. 我正在寻找一种漂亮、干净、安全、简单的方法来使用Mongoid.

我已经查看了mongoid-encryptor,但我还没有完全了解如何使用它。

假设我的简化User看起来像这样,根据mongoid-encryptor自述文件中的示例。

在我的 WebApp 中(Sinatra在这种情况下使用)我会定义一个助手,例如

  1. 我如何使用它bcrypt
  2. 是否有任何预处理我需要做cleartxtpassMongoid::Encryptor只处理?从文档中不清楚。
0 投票
1 回答
467 浏览

ruby-on-rails - Rails 不能批量分配受保护的属性

我正在尝试使用 has_secure_password 的简单身份验证系统,但我收到了标题中列出的错误。我已经多次看到这个问题,但其他人的建议或修复都没有为我工作。我正处于我确定我必须有一个简单的错误但我找不到任何错误的地步。下面发布的是我的相关代码:

宝石文件:

用户控制器:

用户模型:

用户形式:

移民:

这是我得到的实际错误:

预先感谢您对我的困境的任何见解。

0 投票
1 回答
472 浏览

ruby-on-rails - Rails - has_secure_password 和密码和 PIN - password_digest 限制

我想要两层身份验证——我将它们称为“硬”和“软”身份验证。硬层是标准的电子邮件和密码层。我目前使用has_secure_passwordbcrypt-ruby gem实现了这一点,如本 Railscast 中所述:#250 Authentication from Scratch (revised)

对于“软”层,我希望每个用户都有一个 4 位数的 PIN,他们可以使用该 PIN 来验证他们的身份并将他们切换为活动用户。我希望这个 PIN 像密码一样被加密。

我的问题

鉴于 has_secure_password 具有“password_digest”列依赖项(似乎不可定制或可扩展),我如何使用 has_secure_password 进行这两层身份验证?我想在用户表上创建一个“pin_digest”列,并将其视为另一个密码,但似乎 has_secure_password 不支持这一点。

我也很好奇是否有人对我如何实际实现这一点有任何建议,或者出于某种原因这似乎是一个坏主意。

我为什么要这样做?

我正在编写一个用于共享信息亭的应用程序,我想让用户尽可能轻松地切换出去,而不必每次都输入他们的完整登录凭据。这将在人们快速移动的零售店环境中使用,并且每次切换时输入完整的电子邮件地址和密码可能既麻烦又缓慢。

如果有人有任何好主意,我愿意接受建议和方法。:)

它在实践中的样子

  • 用户使用“硬”身份验证登录。
  • 一旦用户使用“硬”身份验证登录,其他用户只需从用户列表中选择自己并输入他们的 PIN 即可进行交换。
  • 用户可以随意使用他们的 PIN 进行交换。
  • 一旦有人单击“硬”注销按钮,则所有用户都将被注销,并且必须使用“硬”身份验证才能重新登录。

一个例子

  • Frank 开始工作并登录(使用“硬”身份验证 - 输入电子邮件地址和密码)到共享信息亭。
  • 弗兰克在售货亭做了一些工作。
  • 乔开始工作,还需要使用信息亭。
  • Joe 在用户列表上单击他的名字,然后系统提示他输入他的 4 位 PIN(“软”身份验证)。
  • Frank 不再是活跃用户。
  • Joe 现在是活跃用户。
  • 在弗兰克需要再次使用信息亭之前,乔做了一些工作。
  • Frank 从用户列表中单击他的姓名,然后系统提示他输入他的 4 位 PIN 码。
  • 当弗兰克完成后,他单击“注销”按钮。下一个想要使用信息亭的人必须使用“硬”身份验证登录。
0 投票
9 回答
18874 浏览

ruby-on-rails-4 - 无法激活 bcrypt-ruby (~> 3.0.0),已激活 bcrypt-ruby-3.1.1。确保将所有依赖项添加到 Gemfile

我有 Rails 4.0.0 应用程序。当我运行 bundle install 命令时没有问题。这是我的 GemFile。

这是我的 Gemfile.lock

当我跑步时rake sometask,我遇到了这个问题,

我应该如何解决这个问题?

0 投票
1 回答
1616 浏览

ruby-on-rails - 使用 BCrypt 更新密码

当我通过 BCrypt 使用用户名和密码登录时,检查没有问题,一切都很好。

但是当我完成恢复密码的过程并尝试使用新密码登录时,BCrypt 永远不会返回 true。

我的代码如下:

我正在使用导轨 4

0 投票
1 回答
1513 浏览

bundle - replace_gem 中的块无法激活 bcrypt-ruby (~> 3.0.0),已激活 bcrypt-ruby-3.1.1

我已经查看了有关此问题的几个答案,但似乎没有一个可以解决问题。这是在窗户上,我迷失了想法。谢谢您的帮助!

C:/Ruby200/lib/ruby/gems/2.0.0/gems/bcrypt-ruby-3.0.1-x86-mingw32/lib/bcrypt_ext.rb:2:in require': cannot load such fil e -- 2.0/bcrypt_ext (LoadError) from C:/Ruby200/lib/ruby/gems/2.0.0/gems/bcrypt-ruby-3.0.1-x86-mingw32/lib/bcrypt_ext.rb:2:in'

'来自 C:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in each' from C:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:inblock in require' 来自 C:/Ruby200/lib/ruby/ gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in each' from C:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:inrequire' 来自 C:/Ruby200/lib/ruby/gems/2.0.0/gems/bundler-1.3.5 /lib/bundler.rb:132:in require' from C:/Users/Natecraft/Documents/railstut/Nate_Enddy_d3/blog/config/application.rb:12:in'来自 C:/Users/Natecraft/Documents/railstut/Nate_Enddy_d3/blog/config/environment.rb:2:in require' from C:/Users/Natecraft/Documents/railstut/Nate_Enddy_d3/blog/config/environment.rb:2:in' 来自 C:/Users/Natecraft/Documents/railstut/Nate_Enddy_d3 /blog/spec/spec_helper.rb:3:in require' from C:/Users/Natecraft/Documents/railstut/Nate_Enddy_d3/blog/spec/spec_helper.rb:3:in'来自 C:/Users/Natecraft/Documents/railstut/Nate_Enddy_d3/blog/spec/models/user_spec.rb:1:in require' from C:/Users/Natecraft/Documents/railstut/Nate_Enddy_d3/blog/spec/models/user_spec.rb:1:in'来自 C:/Ruby200/lib/ruby /gems/2.0.0/gems/rspec-core-2.14.3/lib/rspec/core/configuration.rb:896:inload' from C:/Ruby200/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.3/lib/rspec/core/configuration.rb:896:in阻止从 C:/Ruby200/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.3/lib/rspec/core/configuration.rb:896:in each' from C:/Ruby200/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.3/lib/rspec/core/configuration.rb:896:inload_spec_files' 从 C 加载 _spec_files': /Ruby200/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.3/lib/rspec/core/command_line.rb:22:in run' from C:/Ruby200/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.3/lib/rspec/core/runner.rb:80:inrun' 来自 C:/Ruby200/lib/ruby/gems/ 2.0.0/gems/rspec-core-2.14.3/lib/rspec/core/runner.rb:17:in `block in autorun'

0 投票
1 回答
488 浏览

ruby-on-rails - 红宝石 2 + 轨道 4 + 设计

我正在尝试将一个非常小的设计应用程序升级到 ruby​​ 2 和 rails 4。当我尝试启动 rails 服务器或输入 db 命令时,我得到一个缺少 bcrypt-ruby(设计的依赖项)错误。

我如何强制设计使用 gemfile(3.1.1)中的较新版本的 bcrypt-ruby,而不是自动安装的依赖项(3.0.1),因为将“bcrypt-ruby 3.1.1”添加到 gemfile 并运行 bundle更新/安装似乎没有解决问题。

宝石文件:

Gemfile.lock

0 投票
2 回答
2945 浏览

ruby-on-rails - bcrypt_ext。所以(加载错误)

尝试启动 rails 服务器时出现以下错误。

有任何想法吗?我使用带有 Ruby on Rails 4 和 ruby​​ 2.0.0p247 的 32 位 Windows 7 机器。我在我的 gemfile 中包含了 gem "bcrypt-ruby"、"~> 3.1.1"。

这是我的堆栈跟踪。