Converting caffeine to code, shooting pics, and cruising the roads of life.

Feb 20th, 2007  Feb 20th, 2007

The future and OpenID

After talking to a few people in #OpenID on last night, I finally decided I was going to get OpenID working with my own custom database library. The only full featured PHP library I could find was the one produced by JanRain. It’s not that I don’t like the features in the library, but the fact that it’s a PEAR style library, so it requires a few other PEAR libs that I absolutely refuse to use due to bloat, specifically PEAR::DB.

This caused a real issue for me. Function names are extremely different, along with how queries are performed, compared to my mysqli library. Sometime last month I tried to make a PEAR-style wrapper for my class, but for some reason it failed with the library. Well, last night I found the WordPress OpenID plugin. Knowing that WP runs it’s own MySQL class, I downloaded it and studied the wrapper. This allowed me to see what I had been doing wrong and get a system working before school started today.

Once I had it working, I wrote a simple class I call EasyOpenID. This class allows me to minimize the amount of code in JanRain’s consumer example to very few lines of code. I’ve decided I was going to release this library, so I converted it to FileStore, which is the default the library ships with, and packed it up. I am going to release it here to hopefully get some feedback. If the feedback is good, I will probably continue to expand on the class.

I will have a page up for the library later on tomorrow, but for now, download the file located here. This zip file contains the converted consumer example and my class. The class is released under the new BSD license, while the rest of the code is GPL. Please, provide me with any of your thoughts on the library. Even if you don’t use it on a real, live site, please just let me know what you thought.

Talking with the folks in #OpenID also got me invited to be on the first official OpenID podcast recording, no idea if I’ll be involved, but I’m listening. You will be able to obtain the podcast on sometime tomorrow night or on Thursday. I hope all goes well. Hopefully this new podcast will provide a great resource for developers looking to learn and expand on OpenID.

22 Responses to “The future and OpenID”

  1. Dragoniz3r says:

    Cody, you’re a dumb piece of shit :P
    Really, I don’t think that, I just wanted to give you some traffic ;)

  2. Alex K says:

    Thanks for the hint a question though….

    if I dont have an iPhone connected (for test purposes) what output should I get from running tool?

    I currently get permission denied is this correct?


  3. Tobias says:

    Warning: require_once(Auth/OpenID/Consumer.php) [function.require-once]: failed to open stream: No such file or directory in

    Does anyone know where to get these files? Can’t find them in the zip…and can’t find it in the documentation.

    Or does anyone know an openphp-library with documentation und which is working? :)

  4. Cody Mays says:

    You need to download the the PHP-OpenID library from My class just makes it easier to use.

  5. Kris says:

    I’m having a slight problem, I’m getting directed to my provider, authenticating, then back again but get the following error:
    Fatal error: return_to must be a string; see NEWS file for upgrading notes. in /home/.peony/krisnorthfield/ on line 409

    I’ve tried several things to no avail. Any clues?

  6. Ozmo Camaris says:

    Kris, to correct your issues and the next one you’ll get after you correct that one ;) try this:

    Line 77 REMOVE
    $this->response = $consumer->complete($_GET);
    Line 77 ADD
    $return_to = substr($_GET['openid_return_to'], 0, strpos($_GET['openid_return_to'], "?"));
    $this->response = $consumer->complete($return_to);

    Line 37 REMOVE
    $sreg = $response->extensionResponse('sreg');
    Line 37 ADD
    $sreg = $response->extensionResponse('sreg', true);

    Note: The $return_to line in EasyOpenID.php is one line, but the blog cuts it off, make sure you don’t have a stray carriage return.

  7. tops says:

    in, I get the following error:
    Fatal error: Define Auth_OpenID_RAND_SOURCE as null to continue with an insecure random number generator. in C:\AppServ\www\php-openid\Auth\OpenID\CryptUtil.php on line 52

    and in
    I get the following error:
    Authentication Error.

  8. Rakesh Rawat says:

    Warning: require_once(Auth/OpenID/Consumer.php) [function.require-once]: failed to open stream: No such file or directory in

    Does anyone know where to get these files? Can’t find them in the zip…and can’t find it in the documentation.

    Or does anyone know an openphp-library with documentation und which is working? :)

  9. x-f says:

    Hi, Cody!
    Your PHP class looks much a lot lighter than the JanRain’s original, so I was considering to use it in my project.
    However I ran into a small problem – simple registration extension (sreg) doesn’t work.
    In request params there’s this:
    [openid_ext0_optional] => email
    [openid_ns_ext0] =>

    But it should be:
    [openid_sreg_optional] => email
    [openid_ns_sreg] =>

    And I can’t find, where does this “ext0″ come from.
    The original /consumer works fine, EasyOpenID not.
    Could you, please, take a look?

  10. Jay Stockman says:

    I get the following error

    Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /var/www/vhosts/ on line 8


  11. Robbie says:

    I get the same error as Jay

  12. kelvin says:

    when i add! it stated need url2.0 and for this onl 1.1

  13. colorful nick says:

    Hey there,

    you’re writing that you’ll add the script to the library – meanwhile we can use the direct link to v1.0. Now that this article is quite old, I wonder where the library is, to see if this direct link is outdated or not.

    feel free to answer me via mail, if you find the time. Thanks,

  14. Cody Mays says:

    You are correct, this library is slightly outdated. I have not been keeping it updated unfortunately :/. If someone would like to, feel free to email me.

  15. Laser Cap says:

    The older you get, the more likely it is that you’ll start to experience thinning and hair loss.

    Vitamin B5 is also very much necessary to stop hair fall and then it well also helps the hair
    to grow quickly. Testing blood or saliva usually is done in the morning and evening with
    the normal ranges as noted below.

    my blog … Laser Cap

  16. The beginning of the end came the day Nia’s boyfriend didn’t take up her
    offer of caring for him when he was ill.
    While some causes of hair loss might be associated with how
    you eat and what your physical health is, not all
    of them involve good diet and healthy habits. By observing all the above tips
    when faced with the problem of hair loss Minneapolis citizens should be able to contain avoidable hair breakages.

    Feel free to visit my web blog; Laser Hair Regrowth For Women

  17. A residential treatment center can offer a safe haven for anyone who
    is seeking to bring an end to this abusive and self-destructive habit,
    once and for all. It is not a place where a teenager goes
    because he has problem staying on task or following guidelines.
    The two viruses are very similar in all aspects, except that each type tends to infect these different areas of the body.

  18. Make sure you know how long it requires to recover
    from a plastic surgery process ahead of agreeing to it.
    Treatments for Treacher Collins syndrome commonly require surgery to remove
    the area in which blockage occurs. The American Board of Plastic Surgery, retrieved from website on February 18, 2012.

    Review my website; plastic surgery to look like justin bieber

Leave a Reply