通过Lightopenid对我的用户进行身份验证时,如果他们使用http://www.example.com访问网站,或者当他们通过http://xploge访问网站时,我会获得不同的身份。.com。有什么方法可以避免这种情况。
另外,我还计划通过Facebook进行身份验证,上次我记得他们使用的其他方法没有返回身份而是代币。因此,将电子邮件地址用作唯一标识符是一个更好的主意,以相同的价值同时进行Facebook和Google登录?
谢谢!
您需要为两个域设置相同的领域,例如:
$openid = new LightOpenID('www.example.com');
如果您使用了不同的领域(域),则提供者像Google一样返回不同的身份是有效的。
另外,您不能依靠OpenID返回的电子邮件地址而没有进一步验证。从协议的角度来看,它只是一个字符串值,充满了用户想要的任何内容。
最后 - 不要将您的OpenID支持限制在Google上。该协议的专门设计是为了使其容易被分散,并且至少提供输入任何openID URL的方法并不困难,而不仅仅是单击"使用Google签名"。