Поскольку вы пометили этот вопрос с помощью Zend-Framework, я думаю, вы хотите реализовать это с помощью ZF.
Посмотрите на конструктор Zend_OpenId_Provider
public function __construct($loginUrl = null,
$trustUrl = null,
Zend_OpenId_Provider_User $user = null,
Zend_OpenId_Provider_Storage $storage = null,
$sessionTtl = 3600)
Важным является параметр $storage
.
В примере на http://framework.zend.com/manual/en/zend.openid.provider.html они не передают никаких параметров. Это означает, что по умолчанию используется поставщик Zend_OpenId_Provider_Storage_File
. Опять же, этот файл будет храниться по умолчанию в файлах в вашем каталоге TEMP (/tmp
в Linux).
В основном пример должен быть полностью функциональным. Вы можете зарегистрировать еще нескольких пользователей, позвонив по номеру $server->register($someid, $somepassword);
Но так как он хранит учетные записи по умолчанию во временном каталоге, вам следует заменить эту строку чем-то вроде этого (если можно хранить учетные записи в файлах):
$dir = "/var/lib/myopenidusers";
mkdir($dir);
$server = new Zend_OpenId_Provider(null, null, null, new Zend_OpenId_Provider_Storage($dir) );
Теперь, если вы предпочитаете хранить своих пользователей в базе данных , вы должны реализовать свой собственный Provider_Storage.
Взгляните на абстрактный класс abstract class Zend_OpenId_Provider_Storage
. Это методы, которые вы должны реализовать.