Cookies 浏览器关闭后立即过期的Rails cookie?
两者的区别是什么Cookies 浏览器关闭后立即过期的Rails cookie?,cookies,session-cookies,ruby-on-rails-5.2,ruby-on-rails-6,Cookies,Session Cookies,Ruby On Rails 5.2,Ruby On Rails 6,两者的区别是什么 cookies.permanent[:auth_token] = user.auth_token 及 在轨道上 如何设置浏览器一关闭即过期的cookie,如会话 我的会话控制器: class SessionsController < ApplicationController def new end def create user = User.find_by_email(params[:email])
cookies.permanent[:auth_token] = user.auth_token
及
在轨道上
如何设置浏览器一关闭即过期的cookie,如会话
我的会话控制器:
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
if params[:remember_me]
cookies.permanent[:auth_token] = user.auth_token
else
cookies[:auth_token] = user.auth_token
end
redirect_to user
flash[:success] = 'Logged in successfully.'
else
render 'new'
end
end
def destroy
@current_user = nil
cookies[:auth_token] = nil
reset_session
redirect_to root_path
end
end
class sessioncontroller
请注意,某些浏览器的某些设置不会自然关闭“会话”。他们可以永远保存饼干!那么,“记住我”有什么意义呢?如果我勾选(复选框),它会记得,如果我不记得,它会记得?一些浏览器会在整个浏览器关闭时销毁会话cookie(这种情况很少发生,因为一些ppl只会保持浏览器活动并打开和关闭窗口)。但是,浏览器的“恢复以前的状态”(restore previous state of browser)完全破坏了这一概念,它以与以前关闭时完全相同的windows w/相同的URL开始。所以这在很大程度上取决于用户设置。
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
if params[:remember_me]
cookies.permanent[:auth_token] = user.auth_token
else
cookies[:auth_token] = user.auth_token
end
redirect_to user
flash[:success] = 'Logged in successfully.'
else
render 'new'
end
end
def destroy
@current_user = nil
cookies[:auth_token] = nil
reset_session
redirect_to root_path
end
end