Стандартная аутентификация и библиотека управления сеансами для PHP?

Я знаю, что вопросы как это задали многочисленные времена, но не совсем этого. Простите мне, если я пропустил очевидный дубликат.

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

Мои требования для той библиотеки были бы:

  • Объектно-ориентированный, чистый, превосходный код
  • Полное управление сеансами: Обертка к session_start () и супруги
  • Идеально предоставил бы различные методы устройства хранения данных (Стандарт PHP/tmp, базирующаяся база данных)
  • Идеально смог бы соединиться с различными типами пользовательского хранения данных, но MySQL сделает прекрасный
  • Идеально обеспечил бы удобные функции для поддержки OpenID, но это - мысль воображения, никакое требование прямо сейчас
  • Методы: Проверьте сессию, получите пользовательские данные, получите данные сессии, войдите в систему пользователь, выйдите из системы пользователь
  • Настройки: Время жизни сессии, шифрование пароля
  • Должен быть Открытый исходный код

И если бы это очень универсально, управление пользователями, API или универсальный коннектор к управлению пользователями окружающего приложения были бы хороши:

  • Создайте/Обновите/удалите пользовательские записи
  • Выберите и измените данные, в настоящее время входил в систему пользователь

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

Мои два вопроса:

  • Вы знаете такой компонент как универсальную, автономную библиотеку?

  • Мог кто-то с глубокими знаниями в Платформе Зенда говорить мне, возможно ли использовать Zend_auth и/или Zend_session автономный в ядре большого приложения, которое иначе не имеет никакого отношения к ZF, не работая в обеспокоиться?

7
задан Pekka supports GoFundMonica 29 December 2009 в 17:30
поделиться

3 ответа

Может ли кто-нибудь с глубокими знаниями в Zend Framework сказать мне, можно ли использовать Zend_auth и/или Zend_session отдельно, в ядре большого приложения, которое в противном случае не имеет ничего общего с ZF, не запускаясь в неприятности?

Я не обладаю глубокими знаниями о Zend Framework, но я использовал различные компоненты (например, Zend_Search) без создания объекта Zend_Application или использования MVC-фреймворка, и я уверен, что остальная часть библиотеки также спроектирована как полностью модульная. В прошлый раз, когда я копал код Zend_Session, я не нашел никаких включений за пределами Zend/Session/. Быстрый гугл , похоже, подтвердил это для Zend_Auth, вместе с Zend FAQ, который гласит:

Является ли ZF библиотекой компонентов или фреймворком?
Простой ответ: и то, и другое. Zend Framework предоставляет все компоненты, необходимые для большинства веб-приложений в одном дистрибутиве. Но компоненты Zend Framework также слабо связаны, что делает простым использование всего нескольких компонентов в веб-приложении - даже наряду с другими фреймворками! Используя данную архитектуру use-at-will, мы реализуем возможности, обычно встречающиеся в более монолитных фреймворках. Фактически, в настоящее время мы работаем над компонентом инструментов для релиза 1.8, который упростит сборку приложений с использованием ZF компонентов, но при этом не принесет в жертву природу использования существующих ZF компонентов. Единственное, что мне пришлось сделать, когда я не использовал Zend_Search с MVC framework, это добавить директорию, в которую вы установили Zend Framework, в include path из-за включения в библиотеку Zend. Документация не документирует включения, которые вам нужны, когда вы не используете автозагрузчик Zend, но так как все использует схему именования классов PEAR, это легко вывести из имен классов, которые вы используете. (поэтому класс Foo_Bar_File требует, чтобы вы включили Foo/Bar/File.php )

.
2
ответ дан 7 December 2019 в 03:16
поделиться

Доступно несколько библиотек OpenID.

http://wiki.openid.net/Libraries#php

Для остальных вы можете использовать свои собственные, так как разобраться в чужой библиотеке, вероятно, будет сложнее, чем это стоит.

.
1
ответ дан 7 December 2019 в 03:16
поделиться

Насколько я понимаю, стандартной библиотеки не существует, потому что нет стандартного определения того, что такое пользователь.

В некоторых моих приложениях пользователи просто входят в систему, чтобы что-то делать. В других, пользователи являются частью компании, и их разрешения и доступ к данным ограничиваются пределами этой компании и уровнем подписки, оплачиваемой компанией. В других приложениях некоторые пользователи являются администраторами с доступом ко всему, некоторые пользователи являются администраторами с доступом к некоторым данным (уровень рядов), а другие пользователи являются клиентами этих администраторов, с доступом только к своим собственным данным. Некоторые пользователи привязаны к фирмам/компаниям/клиентам, другие нет. Некоторые пользователи - это просто имя пользователя и пароль, другие - большой объектный график с клиентами, историей заказов, предпочтениями в отчетах, комментариями и т.д.

Может быть, я ошибаюсь и есть какой-то чистый способ абстрагироваться от всех этих требований в системе, которая не требует пяти уровней подклассификации и тысячи попаданий в БД, чтобы войти в систему. Но я не нашел.

0
ответ дан 7 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: