Как клиент OpenID должен искать делегата OpenID? - PullRequest
4 голосов
/ 23 марта 2009

Я только что заметил, что stackoverflow имел проблемы с моим делегатом OpenID, и я заметил, что это было вызвано тем, что мой сайт не использовал разделы <html> и <head>.

Теперь, несмотря на то, что это действительный HTML, вопрос в том, является ли он действительным для поиска делегатов OpenID. Официальный материал, который мне удалось найти на сайте, просто говорит о «главном разделе» HTML-документа, который, однако, по стандартам HTML4 / 5 подразумевается.

Теперь мне интересно, заключается ли ошибка в том, как я объявил делегат, или в реализации OpenID стекового потока.

Не рабочая версия:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>Index &raquo; Armin Ronacher</title>
<link rel="openid.server" href="http://www.myopenid.com/server">
<link rel="openid.delegate" href="http://mitsuhiko.myopenid.com/">
<meta content="Zine" name="generator">
<!-- more link/meta stuff here -->

<!-- page contents here -->
<div class="header">

Рабочая версия:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Index &raquo; Armin Ronacher</title>
<link rel="openid.server" href="http://www.myopenid.com/server">
<link rel="openid.delegate" href="http://mitsuhiko.myopenid.com/">
<meta content="Zine" name="generator">
<!-- more link/meta stuff here -->
</head>

<!-- page contents here -->
<div class="header">

<!-- at the very end of the page -->
</html>

Ответы [ 4 ]

1 голос
/ 24 марта 2009

Я думаю, предполагается, что HTML-страница должна иметь тег HEAD. Большинство так и делает, даже если это не требуется по некоторым стандартам.

Однако стандарт OpenID требует, чтобы его теги были помещены в тег HEAD. Обнаруживают ли другие сайты ваш OpenID, когда его нет в HEAD?

1 голос
/ 24 марта 2009

Ошибка в вашей HTML-странице, которая объявляет делегата. Теги HTML и HEAD должны находиться вокруг тега делегата по очень хорошей причине безопасности. Если это не требуется, то многие веб-страницы, такие как страницы вики и блога, могут быть похищены за их личность, просто оставив комментарий, который содержит специально созданный тег.

«Заголовок», на который ссылается OpenID, действительно является тегом HEAD на странице HTML. Хотя я и не прочитал всю сложную информацию, я был бы ошеломлен удивлением, если бы сама спецификация HTML не требовала окружающего тега HTML и что все теги META должны быть внутри тега HEAD. На мой взгляд, спецификация OpenID не детализирует все требования HTML, потому что это спецификация OpenID, а не HTML, но «раздел заголовка» является ссылкой на спецификацию HTML, так же как и многие другие спецификации.

В заключение я считаю, что StackOverflow.com поступает правильно.

0 голосов
/ 24 марта 2009

Я нашел это решение на getopenid.com:

"Если у вас есть блог или домашняя страница, которую вы хотели бы использовать в качестве своего OpenID, вам не нужно настраивать сервер! Просто скопируйте следующее в заголовок HTML или XHTML и используйте этот URL .

link rel = "openid.server" href = "http://getopenid.com/action/authenticate/"
link rel = "openid.delegate" href = "http://getopenid.com/YOURIDENTITY/"

Обратите внимание, что вы не можете использовать безопасный вход с этим URL, если у вас нет собственного SSL-сервера. Сайты также будут видеть вас как человека, отличного от того, когда вы напрямую используете свою личность на GetOpenID.com. "

Я думаю, что вы должны заменить getopenid.com вашим провайдером OpenID, а YOURIDENTITY - Ваш идентификатор OpenID.

0 голосов
/ 23 марта 2009

Мне удалось найти на веб-сайте только то, что говорит о «главном разделе» HTML-документа, который, однако, по стандартам HTML4 / 5 подразумевается.

Где ты это нашел? Я искал стандарты и не нашел никакого упоминания о «главном разделе» (он говорит о «главном элементе»); ближе всего я пришел к более широкому поиску, заключающемуся в том, что большинство реализаций слабо требуют явных <html> и <head>, но это было представлено скорее как случай великодушного принятия несовместимых документов, чем как часть стандарта. 1007 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...