PHP HybridAuth требует использования сеанса PHP, однако мы хотим избежать использования сеанса на стороне сервера, так как мы запускаем приложение на нескольких компьютерах.
Мы не возражаем, если пользователю необходимо каждый раз, когда это необходимо, проходить аутентификацию у провайдера, поэтому можно ли избежать необходимости использовать сеанс PHP при использовании HybridAuth?
[1] http://hybridauth.sourceforge.net/userguide/HybridAuth_Sessions.htmlКраткий ответ — нет.
Более длинный ответ заключается в том, что это возможно (но в большинстве случаев потребуются сеансы с поставщиком аутентификации), но для объяснения вариантов здесь потребуется слишком много времени, и исходя из тона вашего вопроса, вам потребуется очень подробное описание возможных вариантов. ,
Но это основано на предпосылке, что вы не можете иметь сессии на нескольких машинах. Это тривиально. Даже запуск сеансов в нескольких центрах обработки данных является более простым решением. И поскольку вы, похоже, не используете сеанс для чего-либо, кроме аутентификации, вы не столкнетесь с проблемами масштабируемости.
Если вы не используете механизм сессий PHP для своего приложения, вы можете переопределить хранилище сессий по умолчанию, создав свои собственные функции хранения с учетом нескольких серверов.
Например:
http://php.net/manual/en/function.session-set-save-handler.php
Затем вы можете установить сеанс в Memcached (для этого конкретного случая вам следует использовать только php.ini со следующими инструкциями: http://php.net/manual/fr/memcached.sessions.php), или MySQL, или физическое хранилище, доступное для всех серверов (например, NFS).
Хотя я думаю, что даже если у вас несколько серверов, по умолчанию перенаправляется пользователь на один и тот же IP-адрес (в декларации DNS Round-Robin или в стандартных балансировщиках нагрузки), поэтому уникальное хранилище на каждом сервере не видно другие серверы должны работать.