我制作了一个Padrino应用程序,只有一个密码用于访问管理页面。我正在使用以下帮助程序进行授权。
# Check if the user is authenticated.
def authenticated?(opts = {})
if session["cooly"] != options.session_secret
redirect url(opts[:send_to] || :login)
end
end
# Create a new session.
def authenticate!
session["cooly"] ||= 0
session["cooly"] = options.session_secret
end
立即写信,当我退出浏览器时,会话消失,我必须再次登录。我该如何保持会话?
答案 0 :(得分:1)
确保您的应用有session_secret
set :session_secret, 'fc29ce0f33f0c8cde13f3'
答案 1 :(得分:0)
答案是制作非过期的 cookies 。
# Check if the user is authenticated.
def authenticated?(opts = {})
if session["cooly"] == options.session_secret || request.cookies["cooly"] == options.session_secret
return true
else
redirect url(opts[:send_to] || :login)
end
end
# Create a new session.
def authenticate!
session["cooly"] ||= 0
session["cooly"] = options.session_secret
expiration_date = 10.year.from_now
response.set_cookie('cooly', :value => options.session_secret, :expires => expiration_date)
end
答案 2 :(得分:-1)
查看:https://gist.github.com/977690,这应该可以解决问题。