如何使用rails 3 has_secure_password创建会话?我已经查看了http://guides.rubyonrails.org/security.html。
这一切都不具体。我必须使用会话方法吗?什么是社区标准?我不想使用Devise / Cancan。 我只需要基于cookie的简单授权/认证。
我是否应该在Cookie中存储用户对象?
密码是否容易受到攻击?
答案 0 :(得分:3)
请参阅Michael Hartl关于第8章的本教程。他在解释使用has_secured的实现方面做得很好
http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
基本上,您需要在用户模型中使用密码字段和password_confirmation字段以及password_digest字段。通过在模型中调用has_secure_password,只要密码确认有效,就会生成password_digest。您可以通过选中以下内容登录会话控制器中的用户:
if user and user.authenticate(password)
// sign_in_user
else
// return error message
end
您的模型字段中还需要remember_token来识别Cookie中的用户。 您可以在身份验证时返回remember_token并将其设置为rails中的会话功能,例如:
user = User.find_by_email(email)
session[:remember_token] = user.remember_token
答案 1 :(得分:1)
如果您有足够的钱,Railscasts Pro会在第250集修订版中使用has_secure_password详细介绍这一点,Authentication from Scratch (revised)
还有一个稍微旧版本的免费截屏视频,其中包含详细的ASCIIcast。会话部分可能对您有用,无法阅读或观看。