2008-11-09 26 views
9

我使用Symfony的sfOpenID插件,它不支持OpenID 2.0。这意味着,例如,使用Yahoo!的人OpenID无法登录到我的网站。Symfony是否有OpenID 2.0插件?

有一个OpenID 2.0插件可以和sfGuard一起使用,但我没有使用也没有计划使用sfGuard。另外,它还需要安装Zend框架,这在我的场景中是一个矫枉过正的事情。

所以我有两个问题,真正做到:

  • 有另一个OpenID的插件Symfony的支持OpenID的2.0?
  • 什么是黑客需要使sfOpenID支持OpenID 2.0?

我想我可以学习的OpenID规范和破解它自己,但那时,我是一个懒惰的程序员:)

回答

7

我想你已经覆盖sfOpenID和taOpenIDsfGuardPlugin所有选项的Symfony的插件。

没有详细研究的OpenID的规格,虽然,你可以通过在你的lib放弃它,并连接到sfUser,或者您使用的身份验证任何尝试的PHP库(http://wiki.openid.net/Libraries)之一。还有OpenID Enabled库(http://openidenabled.com/php-openid/),它仍然使用PHP4,虽然与PHP5兼容,但如果您使用tweak the error reporting level来排除某些警告。

这里有几个教程解释了如何在您的网站上使用PHP启用OpenID:http://www.saeven.net/openid.htmhttp://www.plaxo.com/api/openid_recipe

更好的是,之后使用这个知识make a sfPlugin out of it

+0

大量的代码,但我认为没有其他办法。谢谢! – 2008-11-12 09:08:49

1

有一个更简单的方法。 JanRain提供OpenID(和facebook)作为服务http://rpxnow.com。比原生图书馆更容易/更快捷。

+1

我宁愿不外包这个 – 2009-02-12 11:09:50

1

我曾(并且我仍然有)同样的问题。首先,没有任何功能完备的php5 openid库。唯一一个被Zend Framework发布的版本放弃了。所以你要么写自己的(不要推荐,很多工作),要么使用Zend的那个(这就是我使用的)。

问题在于它被大量嵌入到Zend中,并且需要很多ZF的东西。

也许我会发布类似taOpenIDsfGuardPlugin但使用withouth的sfGuard一个插件,因为它常常问(我需要为我将来的项目;))

+0

我决定使用OpenID Enabled,它来自rpxnow后面的家伙。它工作得相当好,但我保持它与symfony堆栈分开(不是作为插件) – 2009-02-12 11:10:48