【发布时间】:2014-07-14 20:06:14
【问题描述】:
我目前正在使用 RoR4 编写应用程序,但在身份验证方面遇到了问题。即使我已将 has_secure_password 添加到 User 模型中,我似乎仍然能够创建新用户而无需提供密码确认。
2.1.2 :012 > me = User.create(:institution_id => 1, :email => "me@myschool.edu", :password => "mypassword")
(0.1ms) BEGIN
User Exists (0.3ms) SELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'me@myschool.edu' LIMIT 1
SQL (0.2ms) INSERT INTO `users` (`created_at`, `email`, `institution_id`, `password_digest`, `updated_at`) VALUES ('2014-07-14 20:02:34', 'me@myschool.edu', 1, '$2a$10$sD2N.2nxhYO7egzzWxfF5.cdIZ4ds41.sU93Ja3E9Q0qAOaABdZb6', '2014-07-14 20:02:34')
(8.2ms) COMMIT
=> #<User id: 5, institution_id: 1, first_name: nil, last_name: nil, email: "me@myschool.edu", blurb: nil, facebook_link: nil, facebook_token: nil, password_digest: "$2a$10$sD2N.2nxhYO7egzzWxfF5.cdIZ4ds41.sU93Ja3E9Q0...", api_key: nil, active: false, created_at: "2014-07-14 20:02:34", updated_at: "2014-07-14 20:02:34", authentication_token: nil>
为什么会这样? has_secure_password 不应该也总是需要密码确认吗??
感谢您的帮助
【问题讨论】:
-
你包括
gem 'bcrypt'吗?你的用户模型包含什么? -
我确实安装了
'bcrypt'。实际上,我决定使用自定义验证,因为我需要以特殊方式处理身份验证的某些方面。我现在使用 bcrypt 来生成 password_salt 和 password_hash 以增加一层安全性。不过感谢您的帮助!
标签: authentication ruby-on-rails-4 passwords activemodel