Используя хранилище сеансов Zend_Auth по умолчанию (сеансы PHP), он создает идентификатор сеанса и помещает его в файл cookie. Если я хочу получить имя пользователя (идентификацию) аутентифицированного пользователя, метод Zend_Auth::getInstance()->getIdentity()
получает это. Однако я хочу получить идентификатор сеанса пользователя. Я могу получить это, просто взглянув на $_COOKIE
или используя session_id()
, но это кажется хакерским, и если я когда-нибудь отойду от хранилища сеансов PHP, может ли оно сломаться? Итак, как лучше всего получить идентификатор текущего сеанса Zend_Auth?
Как получить идентификатор сеанса из сеанса Zend_Auth?
Ответы (1)
Я не думаю, что вы найдете хороший способ сделать это. Если бы такой метод существовал, он был бы определен в Zend_Auth_Storage_Interface
, но типы хранения, не относящиеся к сеансу, не обязательно имеют эквивалент идентификатора сеанса, поэтому классы хранения аутентификации не имеют для этого никакой абстракции. Ближайшее, что вы получите, вероятно:
Zend_Session::getId()
но это просто вызывает session_id()
PHP, так как Zend_Session
зависит от встроенной функциональности сеанса PHP.
person
Tim Fountain
schedule
24.09.2012
session_start()
, то получение идентификатора сsession_id()
имеет смысл и не является хакерским. Но, поскольку я работаю с библиотекой, которая может делать другие вещи или может делать другие вещи в будущем, использование библиотечной функции более высокого уровня вместе с низкоуровневым вызовом ядра кажется неуместным. - person MidnightLightning   schedule 25.09.2012