我已经对这个主题做了很多研究,并且自己实施了很多解决方案.
包括OpenID,Facebook Connect(使用旧的Rest API和新的Graph OAuth 2.0 API),使用twitter登录(据我所知,目前已经升级到完全合格的OpenID),依此类推......
但我仍然缺少的是完美的一体化解决方案.
在我的研究期间,我偶然发现了一些有趣的项目:
但我不想依赖外部提供商,我也想要一个免费的解决方案,所以我不受限制.
我还看到开发人员在遵循提供程序指令并为所有内容设置模型和数据库表之后,一个接一个地实现一个服务.
当然这可以工作,但它是一大堆工作,总是需要开发和更改您的应用程序等.
我正在寻找的是一个抽象层,它将所有服务都带到一个可以集成到我网站的标准中.一旦出现新服务,我只想添加一个处理该特定提供者抽象的模型,这样我就可以将它无缝地集成到我的应用程序中.
或者更好的是,找到一个我可以下载的现有解决方案.
理想情况下,这个抽象服务将独立于我的应用程序托管,因此它可以用于多个应用程序并独立升级.
上述3种解决方案中的最后一种看起来很有希望.一切都只是移植到合成的OpenID,网站jut必须实现OpenID.
过了一会儿,我找到了Django socialauth,一个基于python的Django Webframework身份验证系统.但它看起来像上面描述的那样运行,我认为这是Stackoverflow使用的相同登录系统(或者至少是一些修改过的fork ...).
我下载了它,并试图设置它,看看它是否可以设置为一个独立的解决方案,但我没有运气,因为我也不是这样的python.
我很想要一个基于PHP的解决方案.
所以在这篇长篇文章之后,我的问题恰恰是:
我希望这个问题不是太主观,提前谢谢.
更新:我的结论是构建一个代理/包装器或者你可以称之为Facebook的东西,将它移植到一个OpenID,因此它成为一个OpenID端点/提供者将是最好的选择.这就是我所做的.
请参阅下面的答案.
我添加了赏金以获得反馈/讨论.Maby我的方法并不像我现在认为的那样好!