根据这一政党成员:实施的OpenID
http://www.plaxo.com/api/openid_recipe
步骤之一是:
需要查找的OpenID的 是否进入已经属于现有 用户在您的网站
我的问题:
什么是OpenID喜欢为gmail帐户(我还没有其他OP帐户呢)?在我看来,OpenID = https://www.google.com/accounts/o8/id
gmail,但我怎么用它来查找,因为它是所有用户都一样?
根据这一政党成员:实施的OpenID
http://www.plaxo.com/api/openid_recipe
步骤之一是:
需要查找的OpenID的 是否进入已经属于现有 用户在您的网站
我的问题:
什么是OpenID喜欢为gmail帐户(我还没有其他OP帐户呢)?在我看来,OpenID = https://www.google.com/accounts/o8/id
gmail,但我怎么用它来查找,因为它是所有用户都一样?
https://www.google.com/accounts/o8/id
是您用于登录的内容。成功登录后,Google的响应将包含openid.claimed_id
变量中的长唯一网址(带散列);这是你应该存储在数据库中的一个,并比较它是否是新用户或现有用户。
在像myopenid这样的其他openid提供程序中,两者(登录url和claims_id)都是相同的。
它实际上是https://www.google.com/accounts/o8/id?id=XXXXXXXX
对于一些唯一的字符串XXXXXXXX
在对应于用户的结尾。
从你的链接页面进一步下跌:
当OpenID提供商重定向到 您的return_to URL,就会增加额外的查询字符串的 一堆包含验证所需的 信息 参数 用户使用此012xxOpenID进行身份验证。根据您使用的OpenID 库,您可能需要将这些数据收集到一个数据结构 以传递到验证 函数,或者它可能为您执行。
其中之一就是那个字符串。从谷歌的OpenID文档:
甲谷歌提供的标识符,该标识符 具有到用户的实际 谷歌的帐户名或密码 没有关系,被附加作为查询 参数openid.claimed_id。
这是否成立:'xxxxx' ='user @ gmail.com'? – openid 2010-04-28 05:53:25
不。它包含一个与任何特定用户信息不对应的哈希字符串,唯一的保证是同一个用户将具有相同的哈希字符串。 – Amber 2010-04-28 05:54:10
此外,您可能希望查看Google自己的文档:http://code.google.com/apis/accounts/docs/OpenID.html - 相关报价,“Google提供的标识符,与用户的实际的Google帐户名称或密码作为查询参数openid.claimed_id追加。“ – Amber 2010-04-28 05:55:06
这里的关键区别在于,https://www.google.com/accounts/o8/id
不是OpenID标识符,不像本教程的方式。因为,正如你所指出的,所有用户都是一样的。在terminology of the specification中,它是“OP标识符”,它标识供应商(Google),而不是用户。
这种做法(进入供应商的标识,而不是用户)并不常见当时一种OpenID的启用写你的网站的食谱。使用此流程时,用户没有标识符,直到用户通过id_res
响应从提供商重定向回您的站点。
另外,Google现在可以提供更清晰的标识符URL。如果您设置了Google个人资料,则您的个人资料页面(http://www.google.com/profiles/myProfileName
)也是一个OpenID。与/accounts/o8/id
标识符不同,此标识符在您使用它的所有站点中都是稳定的,没有涉及任何时髦的散列字符串。
真正的id(Dav提到的)将在openid响应的'openid.claimed_id'变量中可用。阅读http://code.google.com/apis/accounts/docs/OpenID.html#Samples了解更多信息。 – Amarghosh 2010-04-28 05:57:00
因此,该ID不是用于直接登录,而是用于检索信息? – openid 2010-04-28 06:26:05