我正在尝试为我的网站实现openId并使用带有php的Janrain库。我想检查openId用户提供的是否已存储在数据库中。我想仅比较规范化的uri以避免用户有时不输入“http:// ...”等情况。 现在,我很难找到能够在用户输入openId之后立即为我规范化uri的特定功能,所以一旦它到达我的服务器,在发送给openId提供者之前。 顺便说一句,你可以慢慢想象我已经厌倦了试图让所有这些工作,但仍然愿意试一试,所以任何帮助将非常感激。
答案 0 :(得分:0)
(假设您的意思是Janrain的“OpenID Enabled”PHP5库,v 2.2.2或其附近。)OpenID.php中定义了Auth_OpenID::normalizeUrl($url)
,但它被标记为@access private
。启动授权事务会在过程中为您提供规范化的URL,但这并不是您真正想要的。您可以忽略私有访问,破解库以使其公开,然后只需在升级版本时保留补丁(如果它们已经发布版本)。或者,你可以看看他们正在做什么,并将其复制到你自己的功能,避免任何库黑客和相关的版本控制问题。
答案 1 :(得分:0)
如果你使用类似的东西:
$url = str_replace(array("http://", "https://", "www."), "", $url);
这应该可以帮助您每次都获得相同的网址。