Jas*_*vis 9 javascript php openid facebook loginradius
我想用javascript和PHP构建一个登录系统,让用户使用现有帐户登录我的网站.
他们至少应该能够使用这些账户......
加上在我的网站上创建帐户的选项,如果他们没有上面的登录.
我已经看到下面的所有这些服务提供了我想要做的事情,
我想自己构建或使用一些开源项目.换句话说,我不希望第三方像上面的网站那样处理这个问题.
那么有人知道是否存在可以处理这个问题的开源项目,或者指出我应该如何创建它的方向?(我可以做PHP和javascript,所以要求更多关于设计理论/项目流程,而不是如何编写代码)
我知道可能有类似的问题,但我还没找到我要找的东西.
不幸的是,事情没那么简单。我不知道任何现有的图书馆,所以这里有一些关于需要做什么的想法。我假设您想要创建一个开源项目 - 如果这是错误的,请忽略与您的项目的其他可能用户相关的部分。
Google 和 Yahoo 都是 OpenID 提供商,因此您可以轻松地从列表中扣除三点。为此我推荐LightOpenID 。(免责声明:我写了 LightOpenID)
Twitter和Facebook使用OAuth,因此您需要找到支持它的合适库。
您可能希望所有方法都有一个统一的登录界面。为此,扩展OpenID Selector可能是一个好主意。
这是最难的部分。您必须将身份验证数据存储在某种数据库中。很多人会想使用mysql,有些人会想使用postgresql,有些人甚至可能想将它们存储在文本文件中。即使您决定只使用 MySQL,php 中也有很多适配器,并且它们不可互换。当然,您可能需要一个库来做到这一点,例如Doctrine,但它可能会比您的项目大几个数量级。而且它不能很好地与框架集成。
根据您的需求,最好的解决方案可能是要求用户实现诸如 、 、 等功能addAccount($type, $login, $password)。userAuthenticated($login)它checkPassword($login, $password)当然为用户提供了最大的灵活性,但需要付出努力才能开始使用它。
当然,我并不是说这个解决方案是完美的,或者甚至适合您的情况——这是我现在能想到的最好的解决方案。
为了使用身份验证机制,需要将其集成到应用程序中。所以你不能强制任何特定的接口,但你应该给出一个好的默认值。您不能强制选择数据库,但应该使其易于实现,并为一些常见情况提供良好的、随时可用的示例。所以我建议将协议支持与接口和存储部分分开。
就是这样。我现在想不出别的事了。
| 归档时间: |
|
| 查看次数: |
2263 次 |
| 最近记录: |