Внедрение OpenID на PHP

Логотип OpenID. Взято с Википедии.
Логотип OpenID. Взято с Википедии.

Таки здравствуй, дражайший читатель.

Вообще, не люблю я писать о работе (хотя статистика количества записей в рубрике соответствующей и ставит под сомнение данное утверждение). Но тут прямо не мог не написать. Все вы, коллеги-PHP-шники, разумеется слышали про такую адову приблуду, как OpenID. Если вкратце, то оная позволяет авторизовать пользователей на разных сайтах под одной учётной записью. Например у меня есть почтовый ящик Google, и с его помощью я могу быть авторизован на сайтах, поддерживающих такой вид авторизации. Т.е. мне не надо придумывать пароль/логин, для того, чтобы войти на сайт. При этом сам ресурс не узнаёт лишнего, он знает только то, что я — это я (ибо доверенный openid сервер это подтверждает). Так вот, вроде бы идея то, конечно, хорошая… Однако на пути внедрения оной становятся несколько проблем. Первая — отсутствие более или менее подробной информации по протоколу/стандарту на русском языке. Вторая — большой набор библиотек, позволяющих (теоретически) проводить безболезненное внедрение OpenID авторизации у себя на сайте. Третья — это наличие нескольких стандартов openid (хотя само по себе это не проблема). И четвёртая — это разная степень развитости этих библиотек, напрямую вытекающая из третьей. Есть ещё и пятая — библиотеки используют разные способы общения с серверами авторизации, самый распространённый — это curl-запросы, которые априори требуют наличия в установленном на сервере PHP расширения curl или компиляции, с опцией —with-curl. Вообще на нормальных хостингах он должен быть включен, однако… как показывает практика — не везде он есть. В общем, все дальнейшие рассуждения основываются на том, что curl таки есть, либо есть возможность его поставить. Просто найти библиотеку, которая бы его не использовала — на самом деле очень сложно.

Читать далее Внедрение OpenID на PHP