我想用javascript和PHP构建一个登录系统,允许用户使用现有帐户登录我的站点。
他们至少应该能使用这些账户..。
加上选项,创建一个帐户在我的网站上,如果他们没有登录上面。
我看到了所有这些服务,这些服务提供了我想要做的事情,
我希望自己来构建这个项目,或者使用一些开源项目。换句话说,我不想让第三方像上面的网站那样处理这个问题。
那么,有没有人知道是否有一个开源项目可以处理这个问题,或者向我指出我应该如何创建这个项目呢?(我可以做PHP和javascript,所以询问更多关于设计理论/项目流程的信息,而不仅仅是如何编写代码)
我知道可能有类似的问题,但我没有找到我想要的。
发布于 2011-09-20 16:48:13
不幸的是,事情并不那么简单。我不知道任何现有的库,所以这里有一些关于需要做什么的想法。我将假设您想要创建一个开源项目--如果这是错误的,忽略有关项目其他可能用户的部分。
协议
谷歌和雅虎都是OpenID提供商,所以你很容易就能从你的名单上拿出三分。为此,我推荐LightOpenID。(否认者:我写了LightOpenID)
Twitter和Facebook使用OAuth,所以你需要找到一个合适的库来支持它。
接口
您可能希望所有方法都有一个统一的登录界面。因此,扩展OpenID选择器可能是个好主意。
数据库存储
这是最难的部分。您必须将身份验证数据存储在某种数据库中。许多人会想要使用mysql,一些postgresql,还有一些人甚至希望将它们存储在文本文件中。即使您决定只使用MySQL,php中也有很多适配器,而且它们是不可互换的。当然,您可能需要一个库来实现这一点,比如教条,但是它可能比您的项目大一个数量级。而且它不能很好地与框架集成。
根据您的需要,最好的解决方案可能是要求用户实现诸如addAccount($type, $login, $password)、userAuthenticated($login)、checkPassword($login, $password)等功能。当然,它为用户提供了最大的灵活性,但需要开始使用它的努力。
当然,我并不是说这个解决方案是完美的,甚至对你的情况也有好处--这是我现在所能想到的最好的解决方案。
集成
为了使用身份验证机制,需要将其集成到应用程序中。因此,您不能强制任何特定的接口,但您应该提供一个良好的默认。您不能强制进行数据库选择,但是您应该使其易于实现并给出良好的结果,可以为一些常见的情况使用示例。因此,我建议将协议支持从接口和存储部分分离出来。
事情就是这样。我现在什么都想不起来了。
发布于 2013-06-09 09:19:43
看看HybridAuth (http://hybridauth.sourceforge.net/)。我还没有开始工作,但考虑到这一点,我是认真的。
发布于 2011-09-20 16:21:31
简单的方法(我想是你不想要的):
Facebook登录按钮:http://developers.facebook.com/docs/reference/plugins/login/
Twitter登录:https://dev.twitter.com/docs/auth/sign-in-with-twitter
其他的也很容易在谷歌上找到,花了整整两分钟的时间。
更困难的方法是下载PHP库,如Facebookphp5twitter-lib等,并从服务器上执行基于OAuth的验证,并将访问令牌作为“用户”存储在您的系统上。我曾经在某个系统中这样做过一次,一旦您掌握了它的诀窍,它就非常有用和简单:)
沙伊。
https://stackoverflow.com/questions/7480090
复制相似问题