В интернете полно инструкций о том, как сделать OpenID на своём домене. Практически все они не работают. Не работает так же и скрипт phpMyID, который советует каждый второй вебмастер. Я расскажу вам о том, как сделать то, что будет работать.
Лирическое отступление для тех, кто не в курсе что такое OpenID: это единая во всём интернете система уникальной идентификации, под которой [теоретически] можно авторизоваться на множестве популярных сервисов от гугла до вконтакта. Как происходит со всеми идеями глобализации и унификации, эта идея так же накрылась медным тазом: единого стандарта на OpenID нет, все провайдеры выдают его по-разному, и все сервисы принимают его тоже по-разному, причём по другому разному.
Притом хочется, чтобы этот идентификатор содержал в себе ваш же домен, а не ссылку на какой-то сторонний сервис. И в итоге обычный вебмастер может быть доведён до бешенства, пытаясь выполнить многочисленные инструкции и понять, почему тот или иной идентификатор не пускает его то в ЖЖ, то в блогспот, то в гугл, то ещё в какие-либо третьи сервисы.
Итак, вот как я решил эту проблему: я зарегистрировался на myopenid и получил свой идентификатор в домене этого сервиса. Затем там же в профайле добавил свой личный домен, подтвердил право на его использование, и получил возможность использовать OpenID на нём. Для этого потребовалось добавить DNS-запись CNAME согласно указанной там же инструкции – интерфейс достаточно простой и понятный, не запутаетесь. В результате я получил идентификатор grigoriy.dobryakov.com – что, согласитесь, уже приятно. Но это половина дела, и данный адрес (если его набрать в браузере) всё равно редиректит на myopenid. Идём дальше.
По той же инструкции я добавил дополнительные мета-тэги на главную страницу своего сайта. Можете открыть сорс и посмотреть, как они прописаны. Это позволило мне использовать уже полный красивый адрес www.dobryakov.com в качестве своего идентификатора.
Прошерстив весь каталог популярных сервисов, поддерживающих OpenID, я получил результат: в большинстве случаев успешно принимается второй, а там где он не проходит – принимается первый. Бинго!