Авторизация через соцсети перед добавлением отзыва

7 7 500
На сайте используется easycomm для реализации отзывов.
Необходимо сделать добавление новых отзывов только после авторизации через соц. сети (к примеру, через дополнение hybridAuth или Personalize) и, соответственно, выводить аватар и ссылку на страницу пользователя в соц. сети.

Предполагается, что поверх формы добавления отзыва будут иконки соцсетей и сообщение, что добавление отзыва доступно после авторизации через соцсеть. И только если пользователь авторизован, то ему доступна форма добавления отзыва.

Создавать пользователей в БД после авторизации не нужно (это важно), можно хранить данные в отдельных ячейках easycomm для каждого отзыва.

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

Таким образом все сводится к такому алгоритму:
1. Человек авторизуется через соц. сеть, после авторизации происходит редирект на callback страницу, которая сохраняет необходимые данные в куках/сессии + добавляет к ним хэш (контрольную сумму);
2. На странице отслеживается наличие требуемых данных, если нет — кнопки для авторизации, есть есть — заполненные input'ы (имя + фамилия, аватар, ссылка на страницу) + опять же хэш;
3. После отправки хук для easycomm сверяет контрольную сумму, если все верно, добавляем отзыв с данными в бд.

Таким образом, можно обойтись без регистрации пользователя в БД.
Юрий
Юрий
20 апреля 2017, 21:24
modx.pro
1 406