通过LightOpenId对我的用户进行身份验证时,如果他们使用http://www.example.com访问该网站或通过http://example.com访问该网站时,我会获得不同的身份。有没有办法避免这种情况。
此外,我还打算允许通过Facebook进行身份验证,而上次我记得他们正在使用其他一些不会返回身份而是使用令牌的方法。因此,使用电子邮件地址作为唯一标识符,使Facebook和Google登录基于相同的值是否更好?
谢谢!
答案 0 :(得分:0)
您需要为两个域设置相同的域,例如:
$openid = new LightOpenID('www.example.com');
如果您使用不同的域(域),则提供商返回不同的身份是有效的,例如Google。
此外,您无法依赖OpenID返回的电子邮件地址而无需进一步验证。从协议的角度来看,它只是一个字符串值,用任何用户想要的东西填充。
最后 - 不要限制您对Google的OpenID支持。该协议专门设计为易于分散,并且至少提供一种输入任何openid网址的方式并不困难,而不是仅仅点击"使用google"登录。