Php 如何将简单的openid与我的站点集成';现有的记录系统是什么?

Php 如何将简单的openid与我的站点集成';现有的记录系统是什么?,php,openid,Php,Openid,有人能将openid的简单逐步集成发布到一个已经有登录系统的站点上吗 我决定使用PHP OpenID 2.1.3,但可以从哪里开始,做什么。不,没有简单的指南。有太多的登录系统和不同的实现使得这变得简单和直接 对于特定脚本,请尝试用谷歌搜索。对于任何其他脚本,都必须将OpenID集成到应用程序中。如果你使用MVC,你很幸运:看看用户模型并将OpenID插入其中。我认为你最好的选择是使用来自的OpenID模块。它可以自己使用,而不必使用整个框架,他们对如何使用它有一个相当简单的解释。它非常简单(如

有人能将openid的简单逐步集成发布到一个已经有登录系统的站点上吗


我决定使用PHP OpenID 2.1.3,但可以从哪里开始,做什么。

不,没有简单的指南。有太多的登录系统和不同的实现使得这变得简单和直接


对于特定脚本,请尝试用谷歌搜索。对于任何其他脚本,都必须将OpenID集成到应用程序中。如果你使用MVC,你很幸运:看看用户模型并将OpenID插入其中。

我认为你最好的选择是使用来自的OpenID模块。它可以自己使用,而不必使用整个框架,他们对如何使用它有一个相当简单的解释。它非常简单(如果您理解OpenID的概念),如下所示:

login_page.php:

// Load the library Zend Framework way, or load it yourself...
// Always good to pick apart the library anyway, to see how it works:
Zend_Loader::loadClass('Zend_OpenId');
$consumer = new Zend_OpenId_Consumer();
if(!$consumer->login($_POST['openid_identifier'], 'redirect_to.php'))
 {
  die('OpenID login failed.');
 }
将_重定向到.php:

Zend_Loader::loadClass('Zend_OpenId');
$consumer = new Zend_OpenId_Consumer();
if($consumer->verify($_GET, $id))
 {
  echo htmlspecialchars($id).' is a valid ID.';
 }
else
 {
  // redirect to "login.php?login=failed".
  if(!headers_sent())
   {
    header('HTTP/1.1 307 Temporary Redirect', true, 307);
    header('Location: login.php?login=failed');
   }
  else die('Invalid ID.');
 }
它比由提供的PHP OpenID库()更易于使用

编辑:如何实现Zend_OpenId(回应评论)

下载,并解压缩文件夹
ZendFramework-1.9.2/library/Zend/OpenId

但是,您必须做几件事:

  • […]/OpenId/Exception.php
    中的类扩展值从
    Zend_Exception
    更改为
    Exception
  • 检查每个文件(我知道这很乏味),并将所有require和include替换为绝对路径名
  • 现在,您可以通过以下方式引用这些类:

    require_once '/path/to/OpenId/Consumer.php';
    $consumer = new Zend_OpenId_Consumer();
    // If you plan on making your own OpenID's, use 'Provider' instead of 'Comsumer'.
    require_once '/path/to/OpenId/Provider.php';
    $provider = new Zend_OpenId_Provider();
    

    现在,我能给你的最好建议就是通读手册!不要指望它第一次就起作用。。。Zend的实现可能更简单,但这并不能阻止OpenID成为一个麻烦

    我没有使用zend框架。因此,您可以在我的系统中安装或仅包含此openid模块