💡 Совет

Упрощаем регистрацию с Gravatar

19.11.2019 1 минута чтения

Всем уже давно известен сервис Gravatar, который упрощает процесс работы с аватарами. Как для пользователей, так и для сайтов. Можно не загружать каждый раз своё фото на новый сайт, сайт может получить ваше фото из Gravatar по вашему email. Это удобно пользователю, потому что можно поменять своё изображение в одном месте и оно сменится везде. Удобно и сайтам, нет необходимости имплементировать процесс загрузки файлов. Конечно, в какой-то степени это затрагивает вопрос о безопасности, но у вас всегда есть право не использовать то или иное решение. Итак, об аватарках, думаю, знают многие. Но Gravatar также позволяет получить по email базовую информацию о пользователе.

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

Ключом данного решения служит email, как и в случае с аватарами. Итак, представим стандартную форму регистрации. Имя, фамилия, email, пароль.

Представим стандартные настройки профиля: поля из регистрации, аватарка, контакты, ссылки на сайты. Если пользователь имеет открытые данные на Gravatar, то мы можем получить всё, зная email. Не стоит, конечно, совсем отказываться от этих полей, так как не все имеют профили в Gravatar, и некоторые профили публичные. Но можно сделать так, чтобы пользователь для начала вводил только email. Если данные найдены — вуаля, нет — предложить ему их ввести.

1. Пользователь

Человеку нужно создать свой профиль, если такого еще нет. Заходим в Gravatar, логинимся через WordPress и заходим в «My Profile» и заполняем всё, что не боитесь сделать общедоступным. Сделать приватным профиль тоже легко, зайдите в свой профиль и нажмите «Спрятать».

2. Сайт. Аватар

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

$email = 'a@jooom.ru';
$hash = md5(strtolower($email)); // 04426f52dc9d570b5725b12805ba8944

Теперь ссылка на изображение пользователя будет такой. Обратите внимание, не надо ничего скачивать себе на сервер, достаточно в тег img указать следующую ссылку — http://www.gravatar.com/avatar/04426f52dc9d570b5725b12805ba8944

3. Сайт. Информация

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

$email = 'a@jooom.ru';
$hash = md5(strtolower($email));
$url = 'http://ru.gravatar.com/' . $hash . '.php'; // http://ru.gravatar.com/04426f52dc9d570b5725b12805ba8944.php
$data = unserialize(file_get_contents($url));

Вот, собственно и все, пользуйтесь этим кодом.

Экспертное мнение Алексей

В веб-разработке с 2012 года. Специализируюсь на PHP, JavaScript и архитектуре высоконагруженных проектов. Автор статей по оптимизации, API и базам данных.

Все статьи автора →
Telegram VK Twitter
Читайте также
PHP: Правильный путь
PHP: Правильный путь
На днях я наткнулся на замечательную карманную книгу для PHP разработчиков "PHP: The Right Way". Скорее, она будет более полезна...
FULL OUTER JOIN
FULL OUTER JOIN
На практике я столкнулся с ситуацией, когда нужно было выбрать данные из двух связанных сущностей при помощи полного соединения. К...