2

如何使用 rails 3 has_secure_password 创建会话?我已经查看了http://guides.rubyonrails.org/security.html

而且没有一个是真正具体的。我必须使用会话方法吗?什么是社区标准?我不想使用 Devise/Cancan。我只需要基于 cookie 的简单授权/身份验证。

我应该将用户对象存储在 cookie 中吗?
密码会容易受到攻击吗?

4

2 回答 2

3

查看 Michael Hartl 在第 8 章的教程。他很好地解释了使用 has_secured 的实现

http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

基本上,您的用户模型中需要一个密码字段和一个密码确认字段和一个密码摘要字段。通过在模型中调用 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
于 2012-11-24T18:39:28.893 回答
1

如果你有钱可以花钱,Railscasts Pro 在第 250 集修订版中使用 has_secure_password 详细介绍了这一点,从头开始验证(修订版)


还有一个稍旧的免费截屏视频版本,包括详细的ASCIIcast。会话部分可能对您阅读或观看有用。

于 2012-11-24T18:46:49.010 回答