我刚注意到stackoverflow我的OpenID委托有问题,我发现这是因为我的网站没有使用<html>
和<head>
部分。
现在即使这是有效的HTML,问题是它是否对OpenID委托查找有效。我能在网站上找到的官方内容只是谈论HTML文档的“头部”,然而HTML4 / 5标准是隐含的。
我现在感兴趣的是,错误是我声明委托或stackoverflow OpenID实现的方式。
无效版本:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>Index » 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 » 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>
答案 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身份。