Performance: Remember me functionality
This affects page load speed and interaction responsiveness by managing user session persistence and cookie handling.
def remember(user) user.generate_remember_token cookies.signed.permanent[:user_id] = user.id cookies.encrypted.permanent[:remember_token] = user.remember_token end # Uses encrypted, signed cookies with secure flags
def remember(user) cookies.permanent[:user_id] = user.id cookies.permanent[:remember_token] = user.remember_token end # No encryption or secure flags on cookies
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Plain cookies without encryption | Minimal | 0 | 0 | [X] Bad |
| Encrypted, signed cookies with secure flags | Minimal | 0 | 0 | [OK] Good |
remember me functionality in a Rails application?cookies.signed and an expiration far in the future, like 20 years.def create
user = User.find_by(email: params[:email])
if user&.authenticate(params[:password])
if params[:remember_me] == '1'
cookies.permanent.signed[:user_id] = user.id
else
session[:user_id] = user.id
end
redirect_to root_path
else
render :new
end
endparams[:remember_me] == '1', the code sets cookies.permanent.signed[:user_id] = user.id, which saves a permanent signed cookie.def destroy session.delete(:user_id) cookies.delete(:user_id) redirect_to login_path end
session[:user_id] and cookies[:user_id], but the remember me cookie is usually a signed cookie.cookies[:user_id] does not remove cookies.signed[:user_id]. The signed cookie remains, so user stays logged in.cookies.signed[:user_id] with a 2 weeks expiry ensures the cookie is secure and expires reasonably.Pass the test and this pattern moves unknown