我正在尝试在我的网站上实施openID,并阅读Plaxo和SO上的问题。我目前能够使用库来验证我的用户。但我注意到一些提供商喜欢
我正在尝试实现一个类似于Plaxo的系统,我将在这里建立多对一的帐户关系。但是,我如何区分使用上述openID网址的用户呢?我甚至看到谷歌和谷歌的个人资料分开。那么,如果用户没有提供用户名,或者我应该说独特的openID,他们如何识别用户?
答案 0 :(得分:3)
OpenID不是为了在提供商上公开用户的“用户名”。您将获得一个经过验证的URL作为其身份,但该URL应被视为不透明字符串。
如果您需要,那么您需要手动提示用户或使用属性交换(两者都不安全,BTW)。
答案 1 :(得分:1)
当你收到openid回复时,会有一个参数“openid.identity”,对每个帐户都是唯一的。它是一个非常长的半随机字符串,因此对显示无用:
https://www.google.com/accounts/o8/id?id=AItOawnlHWwIas84v37...
如果提供了这些属性,您可以尝试基于“昵称”字段或电子邮件地址的本地部分生成可用的可显示用户名。并且最后一种可能性要求用户。