Не истекающие сессии в Падрино - PullRequest
0 голосов
/ 26 июля 2011

Я создал приложение 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

Напишите сейчас, когда я выхожу из браузера, сеанс завершается, и мне нужно снова войти в систему. Как мне сохранить сессию?

Ответы [ 3 ]

1 голос
/ 26 июля 2011

Убедитесь, что в вашем приложении есть session_secret

set :session_secret, 'fc29ce0f33f0c8cde13f3'

0 голосов
/ 30 июля 2011

Выезд: https://gist.github.com/977690, и это должно решить проблему.

0 голосов
/ 26 июля 2011

Ответ состоял в том, чтобы сделать не истекающие куки .

# 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
...