0

通过 LightOpenId 对我的用户进行身份验证时,如果他们使用http://www.example.com访问该站点或通过http://example.com访问该站点,我将获得不同的身份。有什么办法可以避免这种情况。

此外,我还计划允许通过 Facebook 进行身份验证,上次我记得他们使用了其他一些不返回身份而是令牌的方法。正因为如此,使用电子邮件地址作为唯一标识符,让 Facebook 和 Google 登录基于相同的值会更好吗?

谢谢!

4

1 回答 1

0

您需要为两个域设置相同的域,例如:

$openid = new LightOpenID('www.example.com');

如果您使用不同的领域(域),则提供商返回不同的身份是有效的,例如 Google 所做的那样。

此外,您不能在没有进一步验证的情况下依赖 OpenID 返回的电子邮件地址。从协议的角度来看,它只是一个字符串值,填充了用户想要的任何内容。

最后 - 不要将您的 OpenID 支持限制在 Google 上。该协议专门设计用于使其易于去中心化,并且至少提供一种输入任何 openid url 的方法并不难,而不仅仅是单击“使用 google 登录”。

于 2014-02-03T05:25:33.223 回答