Poidsy is a PHP OpenID consumer (or relaying party in OpenID 2.0 parlance). It is designed to be extremely simple for developers to use, hiding as much of the OpenID logic as possible.
Poidsy requires:
- PHP 5.2.10 or above, and
allow_url_fopen
set totrue
in PHP's configuration
To associate with identity providers (as opposed to using "dumb" authentication), it needs:
- The
hash_hmac
function (available by default in PHP 5.2.0 unless explicitly disabled), and - The ability to write to the
keycache.php
file in the Poidsy directory
Finally, to enable Diffie-Hellman key exchange, it also needs:
- The
gmp
library (preferred), or - The
bcmath
library.
You can check all of these at a glance by extracting the Poidsy distribution (or
checking out the source code) and viewing the bundled test.php
page in your
browser.
Poidsy requires no explicit installation. Simple extract all of the files and you're ready to go. If you extract the files to a directory accessible via your webserver (you don't need to, if you don't want), the included demo consumers should work out of the box.
Instructions for using Poidsy and integrating it into an existing authentication solution are available on the website:
http://apps.md87.co.uk/openid/instructions.php
In short, you need to include Poidsy's processor.php
script whenever an OpenID
action needs to be performed. Usually, this will be when the user first gives
you their identity and you want to verify it, and when the user's identity
provider sends them back to you with results.
Poidsy uses PHP sessions to store temporary data and to expose relevant
information to you once the identification procedure is complete. You therefore
need to make sure you call session_start()
before including the processor, and
when you need to use any results.
A concise example of a stand-alone consumer is available in the examples/basic
directory.
Poidsy is open source software, released under the MIT license. The latest source code is available via GitHub: http://github.com/csmith/Poidsy. Bugs and feature requests are logged on the issue tracker in the GitHub project. If you've made changes to Poidsy and are willing to share them, please push them and use the 'Pull Request' functionality in GitHub. Alternatively, feel free to e-mail me patches.
If you need help with Poidsy, or want to get in touch, I can be found on IRC in #MDbot on Quakenet (irc.quakenet.org), or can be reached via e-mail at chris@dmdirc.com.