OpenID客户端应该如何查找OpenID委托?

时间:2009-03-23 18:42:55

标签: html openid

我刚注意到stackoverflow我的OpenID委托有问题,我发现这是因为我的网站没有使用<html><head>部分。

现在即使这是有效的HTML,问题是它是否对OpenID委托查找有效。我能在网站上找到的官方内容只是谈论HTML文档的“头部”,然而HTML4 / 5标准是隐含的。

我现在感兴趣的是,错误是我声明委托或stackoverflow 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 个答案:

答案 0 :(得分:1)

我认为假设HTML页面应该有一个HEAD标记。大多数人都这样做,即使某些标准没有严格要求。

但是,OpenID标准似乎require将其标记放在HEAD标记中。当其他网站不在HEAD中时,会检测到您的OpenID吗?

答案 1 :(得分:1)

错误位于HTML页面中,用于声明委托。出于非常好的安全原因,HTML和HEAD标记必须位于委托标记周围。如果不需要这样做,那么许多网页如wiki和博客页面只能通过留下包含特制标签的评论来劫持他们的身份。

OpenID引用的“head section”确实是HTML页面中的HEAD标记。虽然我没有阅读完整的内容,但如果HTML规范本身没有强制要求使用周围的HTML标记,并且所有META标记都必须位于HEAD标记内,那么我会感到惊讶。在我看来,OpenID规范没有详细介绍所有HTML要求,因为它是关于OpenID而不是HTML的规范,但“head section”是对HTML规范的引用,就像它引用了许多其他规范一样。 / p>

总之,我相信StackOverflow.com正在做正确的事情。

答案 2 :(得分:0)

  

我能够在网站上找到HTML文档的“头部”,但是HTML4 / 5标准是隐含的。

你在哪里找到这个?我搜索了标准,没有找到任何提及“头部”(它谈到“头部元素”);我在更广泛的搜索中得到的最接近的是,大多数实现都要求明确<html><head>,但这更多地表现为大量接受不合规文档而不是作为标准。

答案 3 :(得分:0)

我在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/”

请注意,除非您拥有自己的SSL服务器,否则不能对此URL使用安全登录。与直接使用GetOpenID.com中的身份相比,网站也会将您视为不同的人。“

我认为你必须用你的OpenID提供商和YOURIDENTITY替换getopenid.com 您的OpenID身份。