2016-04-12 5 views
0

Я немного новичок с PHP-файлами и сессиями.Установить и проверить файлы cookie для входа в систему?

Я использую проект PHPauth, и одна из их инструкций меня смутила. С их вики (здесь: https://github.com/PHPAuth/PHPAuth/wiki/Class-Methods) есть примечание о функции входа в систему:

Примечание: Вы должны принять возвращаемый хэш сессии и создать куки сессии, метод не делает это для вас.

Я не задаю этот вопрос для проекта PHPauth, но для всех аутентификаций, поскольку это то, чего я не понимаю. В частности, что обеспечивает безопасность сеанса? И нужно ли мне что-то делать с хешем, которое мне дано в соответствии с массивом?

Array (
    [error] => 
    [message] => You are now logged in. 
    [hash] => 2ec4b290cedd651cf1c20635a887dd7f7042dc54 
    [expire] => 0 
) 

Я имею в виду, я мог бы установить cookie, но что тогда? Как узнать, действителен ли этот файл cookie для этого конкретного журнала?

Спасибо!

+0

Я не уверен, что вы подразумеваете под «Что защищает сеанс?» но да, вам нужно сохранить хэш-логин в файле cookie. Вы можете использовать 'checkSession' для проверки правильности файла cookie. – Chris

ответ

0

Когда вы используете собственный механизм сеанса в PHP, вызов session_start() автоматически отправляет HTTP-ответ, необходимый для создания файла cookie, содержащего хэш идентификатора сеанса для клиента (по этой причине не нужно выводить вывод перед вызовом session_start() кстати.). По умолчанию это имя файла cookie - «PHPSESSID», поэтому PHP прежде всего проверяет, есть ли cookie с хешем с этим значением, когда вы запрашиваете страницу, и, если да, он снова продолжает сеанс.

Конечно, вы можете также изменить имя сессии по умолчанию куки и т.д. Вы должны взглянуть на варианты PHP сессии здесь: http://php.net/manual/en/session.configuration.php

Короче: Обычно это не нужно, чтобы сохранить хэш сессии в любом месте (а также не должен по соображениям безопасности, если у вас нет веских причин), и PHP обрабатывает его автоматически.

+0

Спасибо. Моя проблема была решена с вашей информацией. В моем случае мне пришлось начать сеанс и установить cookie с именем, которое код проверяет на аутентификацию. – Warren

Смежные вопросы