我是Ruby on Rails的新手,我在网上看到了一些关于验证用户登录的教程。我对Rails中的cookies对象感到困惑。
当用户成功登录时,我被告知使用cookie对象来存储令牌:
def sign_in(user)
remember_token = User.new_remember_token
cookies.permanent[:remember_token] = remember_token
user.update_attribute(:remember_token, User.hash(remember_token))
self.current_user = user
end
从上面的代码看,似乎每次用户登录时,我们都会使用" remember_token"将令牌存储在cookies对象中。符号。我想知道是否有多个用户同时登录,是否会覆盖令牌值?
我的困惑是,似乎cookie对象是一个单独的代码来保存令牌值(如果我错了,请纠正我)。请帮助我了解cookie对象如何工作的机制。
由于
答案 0 :(得分:1)
cookie对象不是单个对象 - 控制器将其委托给当前请求。
每个http请求都有自己的cookie对象,最初包含浏览器发送的所有cookie。任何更改都将通过set-cookie标头发回。
您可能希望阅读一般的http Cookie(例如RFC6265)