OpenID и hCard: интересный симбиоз

    Иван Сагалаев реализовал интереснейшую штуку. Я не могу не рассказать о ней хотя бы и вкратце. Итак, в чём суть дела:

    Обычно обладатели OpenID действуют в следующих условиях:

    1. У них есть свой OpenID — это по сути некий персональный URL (например http://username.livejournal.com или http://username.moikrug.ru, или какая-то другая страница).
    2. Они залогиниваются на сайтах, поддерживающих OpenID, указав заветный URL (см. выше)
    3. Залогинившись, люди могут совершать некие действия на сайте (чаще всего оставлять комментарии и т.п.), причём система, не зная их имени, будет именовать их в соответствии с OpenID.

    Сагалаев предложил внедрить в страницу с OpenID микроформат hCard с тем, чтобы при залогинивании помимо собственно OpenID система могла получить ещё и имя с фамилией, просто проанализировав страницу и вытащив оттуда необходимую информацию («крюками» для вытаскивания как раз и служат соответствующие классы микроформата hCard).

    Уже сейчас можно всё опробовать, указав в качестве OpenID страницу вашего профиля в «Моём Круге» — она содержит hCard.

    Рекомендую ознакомиться с полным авторским описанием всего вышеизложенного.

    Комментарии 39

      +2
      О наконец-то кто-то придумал как весь профиль привязать к openid :)
        0
        Верно! Идея витала в воздухе, но я, например, ранее не встречал её реализацию (имею в виду именно OpenID+hCard). Ссылка на статью ушла западным микроформатчикам.
          0
          Вообще на сайте openid, кажется, рекомендовали брать личную информацию из RSS.
          Т.е. лезть на OpenID URL , искать там RSS и смотреть в нем информацию об авторе. Плюс этого в том, что RSS на основных блогах уже есть, в отличие от hCard. Минус - что это может оказаться не RSS авторизовавшегося человека,а какой-то левый.
            0
            Ну что ж — я не против RSS, однако мне очень нравится идея хранить небольшую полезную информацию именно внутри XHTML-файла. Без необходимости генерировать другой файл. Пример с «Моим Кругом» очень показателен: ведь уже и так есть страница профайла, которая сама по себе OpenID URL и одновременно hCard-носитель. Можно любой профайл превратить в hCard-носитель путём совершенно несложных добавлений в XHTML-код.
              0
              Я исключительно из соображения "плохой стандартный вариант лучше двух хороших нестандартных" - и даже если на официальном сайте это просто рекомендовали, то есть больше шансов это всттретить в реальной жизни. А так как есть даже стандарт (SRE), то , я думаю, он распроcтранится быстрее.

              [Как разработчику, мне засовывание всего в один файл как раз нравится меньше всего - идея качать 30kb html и потом его долго парсить, чтобы получить 1kb данных мне не нравится просто из соображений эффективности. Это, конечно, не так важно на нынешних линиях и процессорах, но тем не менее. ]
                0
                Вполне понимаю. Но, с другой стороны, hCard обладает хорошим потенциалом, во многом заключённым в том, что это всего лишь XHTML-код, именно и содержащийся внутри самого XHTML-файла.
        0
        Интересно, а где российские OpenID сервера? :)
          +1
          MoiKrug.ru, Toodoo что-то кажется делает, videntity.org полностью переведен на русский. Вполне достаточно :-)
            +1
            мойкруг, например
              +1
              Любой wordpress блог :)
              0
              Максим, в новости обе ссылки не на статью, а на твой комментарий в ней. Так задумано или ошибка?
                0
                Ошибка. Исправил. :)
                0
                Да, действительно :) videntity.org почти на русском весь :)
                А есть ли еще где информация о том, как создать сервер?
                Я наткнулся на пир для php. Но дальнейший шагов там нету :(
                  0
                  Могу подедится инфой как это совместить с WordPress'ом
                    0
                    Я не использую WP :) Все, что могу пишу сам, а что не могу смотрю как ;)
                    0
                    есть готовый сервер на рельсе.
                    Находится в гугле.
                    0
                    так в блоге у Сагалаева это же вроде описано.
                    +6
                    Идея интересная, но почему не использоваться штатные возможности OpenID, описанные в спецификации?

                    Существует спецификация "OpenID Simple Registration Extension 1.0" - это расширение OpenID, продвигаемое теми же людьми. При наличии этого расширения, протокол позволяет спросить у OpenID-сервера такие поля: nickname, email, fullname, dob(дата рождения), gender, postcode, country, language, timezone.

                    Сама спецификация здесь
                      0
                      Здорово, есть и такая спецификация!
                      Когда пол года назад я изучал openid с целью прикрутить к нашему сервису, то ее еще не было - видимо, автор об этом тоже не знал
                        +2
                        Знал, на самом деле :-). Но hCard лучше (IMHO), и даже гораздо. Во-первых SRE (Simple Registration Extensions) привязывает пользователя к приохти провайдера. Если тот не реализует SRE (имеет право), то пользователь в пролете. А hCard человек может нарисовать себе сам на своей странице и сделать с нее делегацию. Кроме того, SRE очень простая и ограниченная, там например нельзя передать фотографию пользователя, а в hCard — пожалуйста. Еще микроформаты — это хороший паттерн, и кроме hCard на свой странице можно хранить и, например, XFN-информацию о своих контактах...
                          0
                          Я запустил пулю в стан западных микроформатистов. Послал ссылку человеку, вполне себе русскоговорящему и знающему толк в вопросе.
                            +2
                            Кстати, раз уж зашла речь... Я хотел написать livejournal'ским девелоперам, что было бы замечательно и красиво привешивать чуток hcard'а в дневники (буквально class="nickname"). Но не знаю куда писать...
                              0
                              Провентилирую вопрос. Возможно, что и присоветуют что-нибудь дельное.
                                0
                                я напишу, знакомые там есть.
                              0
                              тут есть еще одна важная проблема - когда клиент OpenID лезет на OpenID урл, он не может быть уверен, что найденный там hCard - это hCard залогинившегося человека, а не чей-то еще. То есть, как минимум личный hCard на странице должен быть как-то помечен (я подумал про XFN/me, но это только для линков).
                              С другой стороны, пользователь, который может писать HTML на своем openid url, может и влиять на своего провайдера в плане рeализации SRE - или выбирать между провайдерами , точнее говоря, он, скорее всего, сам администрирует свой сервер.

                              А еще, судя по спецификации, этот SRE очень просто добавить к существующей реализации OpenID клиента.
                                0
                                OpenID урл принадлежит конкретному человеку, это только его урл, только его подпись. Там не может быть чьего-то чужого hCard.
                                  0
                                  пардон, поторопился : ) действительно, там могут быть карточки других людей. Однако очень просто в хозяйской карточке указать тот же самый урл как одно из полей — это есть в спеке hCard. То есть, если на странице несколько карточек, нужно брать ту, которая содержит урл страницы.
                                0
                                На самом деле, даже ЖЖ не возвращает дополнительные поля (хотя Брэд то мог и пример показать). Так что ценность данного расширения пока преувеличина.
                                0
                                Спасибо, знал что такое у openid есть, но не нашел спецификации..
                                  0
                                  Спасибо за ссылку на спецификацию SRE
                                    +1
                                    насколько я помню, опенид передает все данные через урл. Из-за ограничений на его длину всегда будут находиться люди, у которых туда что-то не поместится. Кроме того, мне лично больше нравится «чистая» идея опенид — только подтверждение обладания урлом, а вся остальная функциональность пусть лучше реализуется другими методами.
                                    +2
                                    а мне кажется, что в FOAF-файле можно найти больше интересного:)
                                    videntity.org кстати успешно берет информацию из FOAF и импортирует к себе даже всех френдов из ЖЖ..
                                      0
                                      Из статьи:
                                      "юзеры смогут использовать любые имена, которые им нравятся, и никогда не встретят сообщение “ваш ник уже занят”"
                                      А теперь будет - "ваш ник уже занят на всех этих ресурсах, а в перспективе и во всём интернете"?
                                        0
                                        А если два разных OpebID сервера? например можно быть burundi.livejournal.com или burundi.myopenid.org (сдается так) и два этих совершено разных человека будут иметь один ник или прочие. Или разные люди могут иметь один ник. Это приведет к путанице.
                                        0
                                        Сюрприз: существует реализация identity-провайдера, лишенная и недостатка hCard - невозможности контролировать, какому серверу какие данные отдавать (критический недостаток, очень сильно ограничивающий практическую применимость hCard), и недостатка SRE - необходимости поддержки сервером пользователя этого протокола (второй недостаток SRE - ограниченное кол-во полей - на самом деле обходится, т.к. по спецификации "The behavior in the case of ... extra, unrequested fields is up to the Consumer", аналогичным образом и сервер может попробовать запросить поля, не описанные спецификацией).

                                        Реализация эта - встроенный в IE (начиная, кажется, с версии 5.0) Profile Assistant. Его API, доступный через обьект navigator.userProfile, фактически реализует функциональность SRE на клиенте (где, если по-нормальному, данные о айдентити и должны находиться - ближе к телу, так сказать), с большим кол-вом полей и меньшим оверхедом. А аттрибут полей форм vcard_name делает удобным передачу информации из профайла на сервера, которые с этим API работать не умеют. Подробней - http://msdn2.microsoft.com/en-us/library…,
                                        http://msdn2.microsoft.com/en-us/library… (извиняюсь, что в таком виде даю ссылки - HTML-теги почему-то при предпросмотре и постинге вырезаются).

                                        Очень странно, что в разрабатываемой WHATWG спецификации Web Applications 1.0 не предусмотрена такая функциональность. Если у кого есть возможность связаться с WHATWG или разработчиками Оперы или Файрфокса - намекните им, пусть подумают в эту сторону...
                                          0
                                          А этот объект не запатентован случайно одним из туч патентов?
                                            0
                                            Это было бы не в духе современной Microsoft. Какой бы неэтичной не считали компанию, а девелоперскому комьюнити она много чего подарила. Модный нынче AJAX'а, например, построен на MS'овской разработке (XMLHTTP), которую потом уже позаимствовали разработчики остальных браузеров.

                                            Патентование, кстати, тоже разное бывает. Бывает не сильно страшное ;-) MS'овский же .NET (C#, CLR), например, стандартизован ECMA, политика которой гласит "The General Assembly of Ecma shall not approve recommendations of Standards which are covered by patents when such patents will not be licensed by their owners on a reasonable and non-discriminatory basis" (http://www.ecma-international.org/mement…) - очевидно, MS не собирается зажимать технологию или прессовать разработчиков альтернативных реализаций, раз уж на таких условиях ее стандартизировала.
                                          0
                                          videntity.org тоже поддерживают hCard да еще и FOAF...

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                          Самое читаемое