0

我制作了一个 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

现在写,当我退出浏览器时,会话消失,我必须重新登录。如何保持会话?

4

3 回答 3

1

确保您的应用中有session_secret

set :session_secret, 'fc29ce0f33f0c8cde13f3'

于 2011-07-26T19:32:31.137 回答
0

答案是制作不会过期的cookie

# 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
于 2011-07-26T19:44:44.137 回答
-1

查看:https ://gist.github.com/977690应该可以解决问题。

于 2011-07-30T00:56:47.333 回答