windows-1251 Авторизация через социальные сети - Пвфеямв

Авторизация через социальные сети

Восстановил работоспособность комментариев на сайте, а заодно прикрутил авторизацию через социальные сети.

Вокруг авторизации через социальные сети походил какое-то время кругами, и даже начал изучать API. Идея в принципе понятна, но делать в рукопашную было очень лениво. А потом наткнулся на сервис uLogin и сразу стало хорошо.

Работает все просто: uLogin является проксей между социальной сетью и сайтом. Пользователь тыкает на кнопку, открывая страницу с авторизацией для сайта uLogin, а затем uLogin передает информацию о пользователе на сайт. Понятно, что де факто вся информация о пользователе передается не на один, а на два сайта, но кого волнуют такие мелочи, тем более, что Гугл все равно все знает.

Итак пользователь ткнул на кнопку социальной сети, авторизовал себя в ней, а uLogin выплюнул на сайт токен (хэш код) через жабоскрипт. Дернув специальную страницу на uLogin, с указанием токена сайт получает информацию о пользователе. И тут случается маленький косячок — информацию по токену можно получить строго один раз! То есть без специальных телодвижений информация о пользователе хранится до перезагрузки страницы. А телодвижения делать придется в 146% случаев — иначе как защититься от подделки данных.

Воспаленный мозг подсказал два варианта решения проблемы. Вариант I. Содержимое токена кешируется на сайте и когда нужно получить информацию от пользователя содержимое берется не с uLogin, а из кэша. Через определенное время кэш «протухает». Вариант II. Содержимое токена хранится прямо на сайте в виде строки, а строка подписывается хэшем через запрос на сервер (например, md5) с использованием секретной строки.

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

В любом случае сервис удобный и на техническую реализацию ушло часа четыре. Ну а дизайн, как обычно, просто выжрал мой мозг!