问题标签 [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.
mysql - Ruby 和 Sinatra,无法将散列密码与 BCrypt 进行比较
我正在使用 Sinatra 和 DataMapper 开发一个简单的 Ruby 身份验证应用程序。
我已经成功实现了用户注册时的哈希密码方法,但是我无法使身份验证路由正常工作,它根本不匹配提供的密码与存储在数据库(MySQL)中的哈希版本。
在阅读了很多文档、关于 stackoverflow 的很多问题以及更多文档之后,我在这里寻求您的帮助。
我创建了一个简单的 GET 路由来尝试了解 BCrypt 库的工作原理,而不将密码存储到数据库中,此路由的目的只是了解如何使用该库:
所以基本上我所要做的就是向 /test 发送一个 GET 请求,一切都应该完成,但事实并非如此,BCrypt::Password.new 似乎没有根据散列密码验证原始密码。
提前感谢您,任何帮助将不胜感激。
mysql - MYSQL Password Encryption with BCrypt
I'm automating the process of creating WordPress sites with a custom shell script. Is it possible to encrypt MYSQL passwords with BCrypt for WordPress? If so, what's the best way to approach this?
Snippet:
With Ruby, I can encrypt it like so:
ruby-on-rails - 实施 has_secure_password 后的错误消息
我在 Rails 中开发了一些运行良好的测试。然后我补充说:
- 在模型文件中:has_secure_password
- 在 Gem 文件中:gem 'bcrypt', '3.1.7' (捆绑安装后它显示在 Gemfile.lock 中)
- 我将 password_digest 作为字符串添加到迁移文件中(迁移后它确实显示在 schema.rb 中)
我在测试文件中添加了密码和密码确认设置:
现在,当我运行时,rake test
我收到错误消息:
NoMethodError: undefined method 'password_digest=' for #<User:0x00000002f9c020> test/models/user_test.rb:6:in 'setup'.
第 6 行指的是 @user = User.new ...
所以它似乎已经正确地实现了 gem 和附加列,但是我收到了这个错误消息。有谁知道可能是什么原因?
ruby - 无法安装 bcrypt-ruby,阻止设备升级,“无法构建原生 gem 扩展”
我在 Mac OSX 10.10.2 上。在尝试将设备从 2.1.2 升级到 2.2.8(通过更新 Gemfile 中的版本)时,bundle install
尝试安装 bcrypt 3.1.10 并因以下输出而崩溃:
我尝试了一些在搜索中发现的修复,例如:
(同样的错误)
从 github ( https://github.com/codahale/bcrypt-ruby )下载 gem 源并尝试从本地 gemfile 安装(同样的错误)。
用 卸载 bcrypt-ruby gem uni bcrypt
,用 重新安装gem i bcrypt-ruby --platform=ruby
(同样的错误)
如果我将用户设置为 root sudo su -
,我可以使用以下输出运行安装:
但是,如果我退出根目录,捆绑安装仍然会失败。
运行 rvm 1.25.3、ruby 1.9.3、gem 2.2.2、Bundler 版本 1.9.4、Xcode 6.3、命令行工具 6.3
有任何想法吗?
ruby-on-rails - Rails 4 - 仅当当前密码正确时才允许更改密码
在我的应用中,用户可以编辑他们的个人资料信息。在编辑个人资料表单上,用户可以更改所有字段(姓名、职务等)。在同一个表单上是三个字段:current_password
、password
和password_confirmation
。我正在使用bcrypt
'shas_secure_password
功能进行密码验证。我根本不使用设计。
我希望用户只有在提供正确的当前密码时才能更改密码。我之前在update
我的用户控制器的方法中使用以下代码进行了此操作:
但是,这种方法的问题在于,如果当前密码不正确,它会丢弃对用户模型的所有更改。如果当前密码不正确,我想保存对用户模型的所有更改,但不保存密码更改。我试过像这样拆分 IF 语句:
这不起作用,因为即使当前密码不正确,用户也可以更改他/她的密码。单步执行代码时,虽然“当前密码不正确”。错误添加到@user
,通过该update_attributes
方法运行后,似乎忽略了此错误消息。
顺便说一句,该current_password
字段是我的用户模型中的虚拟属性:
几个小时以来,我一直试图解决这个问题,所以我真的可以使用一些帮助。
谢谢!
解决方案
感谢papirtiger,我得到了这个工作。我从他的回答中稍微更改了代码。下面是我的代码。请注意,任何一个代码片段都可以正常工作。
在用户模型中(user.rb)
我的用户控制器中的代码现在很简单:
forms - 以不同的形式但在同一视图中更新用户密码和电子邮件
我的目标是创建一个个人资料页面,(登录的)用户可以选择更新他们的电子邮件或密码(以不同的形式,因此不能同时更新),而无需离开该页面。
更新一个人的电子邮件就像输入他们的新电子邮件并点击“保存更改”提交按钮一样简单。
更新一个人的密码需要用户输入他们的旧密码,他们的新密码,并确认他们的新密码,然后点击“更新密码”按钮。问题一定出在 update_pwd 方法中。
users_controller.rb
编辑.html.erb
路线.rb
现在,我已经能够让电子邮件更新按需要工作(使用必要的错误消息/验证等),但是只要单击更新密码按钮,视图就会呈现,但没有任何反应。相反,似乎正在调用 update_email 函数:
用户.rb
application_controller.rb
错误日志(如上所示)
ruby-on-rails-4.2 - 在rails 4.2上的ruby上使用哈希和盐更改密码bcrypt
我正在尝试使用 gem bcrypt 和 hash-salt 方法更改用户密码。
这是我的代码,其中包含我更改密码的尝试,但它给了我一个缺少模板的错误。
用户控制器
用户模型
还有,路线
最后但同样重要的是形式。
ruby-on-rails - 使用 bcrypt 进行身份验证以更改密码
好吧,我在更改他/她的密码时遇到了验证用户的问题,我得到了邮件和密码并运行了self.authenticate
,但它一直返回我 nil
我使用与登录时相同的格式。这是代码
用户控制器.rb
用户.rb
形式
我只是想弄清楚为什么它一直给我返回 nil 以及如何成功更改密码。
ruby-on-rails - Rails:通过设计进行远程身份验证
假设我通过我的 rails 应用程序中的设计(使用默认bcrypt
加密器)获得了默认用户授权。
当用户可以使用 rails 应用程序密码登录时,我正在尝试制作类似 gui 应用程序的东西。但我不想通过 ajax 将我的密码发送给用户应用程序(在我看来这是不安全的)。远程身份验证是否有任何常用方法来设计使用哈希?
ruby-on-rails - 安装 bcrypt 3.1.7 时出错,捆绑程序无法继续
我正在使用 rubystack2.2.0。当我为使用 bcrypt 的新项目运行 bundle install 时,出现此错误:
使用本机扩展安装 bcrypt 3.1.7
这是详细的输出