实现OpenID。是否有唯一的标识用户的信息?

实现OpenID。是否有唯一的标识用户的信息?,openid,Openid,我想使用OpenID实现用户身份验证 OpenID提供的用户数据中是否有任何独特之处,我可以将其用作记忆和识别用户的密钥? 我本来想使用电子邮件,但用户可以更改它。用户的OpenID身份是您应该使用的 这是作为标识输入的URL,或者在可用时作为声明的\u id返回。在这两种情况下,只有在成功的身份验证之后才实际存储身份 有关更多信息,请参阅的和部分 但是,正如Stephen在评论中指出的那样,如果要将多个身份与单个用户关联,您需要自己生成一个唯一的ID。如果您需要一个唯一的标识符,以便用户可以更

我想使用OpenID实现用户身份验证

OpenID提供的用户数据中是否有任何独特之处,我可以将其用作记忆和识别用户的密钥?
我本来想使用电子邮件,但用户可以更改它。

用户的OpenID身份是您应该使用的

这是作为标识输入的URL,或者在可用时作为
声明的\u id
返回。在这两种情况下,只有在成功的身份验证之后才实际存储身份

有关更多信息,请参阅的和部分


但是,正如Stephen在评论中指出的那样,如果要将多个身份与单个用户关联,您需要自己生成一个唯一的ID。

如果您需要一个唯一的标识符,以便用户可以更改与之关联的OpenID,您只需生成自己的唯一ID即可(如果要将其存储在数据库中,可能只需使用自动生成的整数)。您应该始终准确地使用从提供程序获得的
openid.claized\u id
参数作为此用户帐户的唯一标识符,即使您将其与已知的其他标识符聚合到单个用户帐户中也是如此。不要只使用用户在文本框中键入的标识符,因为这会使您面临很多问题安全漏洞。当然,还要验证断言,包括对新声明的\u id的发现。更好的是,使用一个已经编写的库。听起来你好像还没有读过规范。不要在不读规范的情况下编写OpenID!或者只使用库。