gpt4 book ai didi

php - 如何将简单的 openid 与我站点现有的日志系统集成?

转载 作者:搜寻专家 更新时间:2023-10-31 20:56:23 24 4
gpt4 key购买 nike

任何人都可以将 openid 的简单分步集成发布到已经具有登录系统的站点中吗?

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

最佳答案

我认为最好的选择是使用 Zend Framework 中的 OpenID 模块.它可以单独使用,而不必使用整个框架,并且他们对如何使用它有一个相当简单的解释 on their manual pages .它很简单(如果您了解 OpenID 的概念):

登录页面.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.');
}

redirect_to.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 提供的 PHP OpenID 库 ( OpenID Foundation) 更容易使用。 .

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

下载latest Zend Framework ,并提取文件夹 ZendFramework-1.9.2/library/Zend/OpenId

但是有几件事你必须做:

  1. [...]/OpenId/Exception.php 中的类扩展值从 Zend_Exception 更改为 Exception
  2. 遍历每个文件(我知道这很乏味)并将所有要求和包含替换为绝对路径名。

现在您可以通过以下方式引用类:

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 成为一个麻烦!

关于php - 如何将简单的 openid 与我站点现有的日志系统集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1420138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com