当标识符中没有用户名时,如何识别OpenID用户名?

当标识符中没有用户名时,如何识别OpenID用户名?,openid,google-openid,Openid,Google Openid,我试图在我的网站上实现openID,并通读类似的内容和问题。我目前能够使用库对我的用户进行身份验证。但我注意到一些提供商喜欢 谷歌: 雅虎: 我正在尝试实现一个类似于Plaxo的系统,其中我将考虑多对一的关系。但是我如何区分使用上述openID URL的用户呢?我认为谷歌和谷歌个人资料是分开的。那么,如果用户没有提供用户名,或者我应该说是唯一的openID,他们如何识别用户呢?openID的设计目的不是在提供者上公开用户的“用户名”。我们为您提供了一个经过验证的URL作为他们的标识,但该UR

我试图在我的网站上实现openID,并通读类似的内容和问题。我目前能够使用库对我的用户进行身份验证。但我注意到一些提供商喜欢

  • 谷歌:
  • 雅虎:

我正在尝试实现一个类似于Plaxo的系统,其中我将考虑多对一的关系。但是我如何区分使用上述openID URL的用户呢?我认为谷歌和谷歌个人资料是分开的。那么,如果用户没有提供用户名,或者我应该说是唯一的openID,他们如何识别用户呢?

openID的设计目的不是在提供者上公开用户的“用户名”。我们为您提供了一个经过验证的URL作为他们的标识,但该URL应被视为不透明字符串


如果需要,则需要手动提示用户或使用属性交换(顺便说一句,两者都不安全)。

当您获得openid回复时,将有一个参数“openid.identity”,该参数对于每个帐户都是唯一的。它是一个非常长的半随机字符串,因此对于显示以下内容没有用处:

https://www.google.com/accounts/o8/id?id=AItOawnlHWwIas84v37...

如果提供了这些属性,您可以尝试根据“昵称”字段或电子邮件地址的本地部分生成一个好的可显示用户名。最后一种可能性是询问用户。

+1。小更正:属性交换与Sreg用户名数据一样安全(两者都可以签名),因此我使用服务器验证的字符串作为标识。例如,StackOverflow生成一个假的用户名,如
user12345
,然后要求用户在其配置文件中更改它。我需要openid.identity还是openid.claid\u id?互联网上的许多人说,他们使用的是声称的身份而不是身份。一个例子:
http://stackoverflow.com/a/3364025/1114457