In trying to reach my Oct 1 goal, I did a good bit of work on two of my plugins this weekend, wp-openid and wp-yadis. For anyone that has been trying these plugins recently, please download the latest from subversion and see how they work for you. I’ve tested with Wordpress 2.3 using PHP 5.2.2 and PHP 4.4.7. I didn’t actually try Wordpress 2.2 myself, but I can’t think of any reason there should be problems. Please let me know your results in the comments here or by email.

update: I’ve also added Alexandre Passant’s nice FOAF/SIOC auto-discovery code.

Comments and responses

I’m using Wordpress 2.3, PHP 5.1.6, and the latest from wp-openid trunk (revision 20593). I’m getting a fatal error when trying to activate the plugin. Fatal error: Call to undefined method Log_error_log::error() in /var/www/vhosts/liferain.com/httpdocs/id/ShackDougall/wp-content/plugins/openid/interface.php on line 36 In case it’s helpful, here’s a link to my server’s phpinfo. The fatal error is some kind of misconfiguration in logging, I guess, but if you look at line 36, it looks like the line that’s failing is if( !$this->logic->enabled ) { // Something broke, can’t start UI. I’m not sure how to proceed. Any thoughts?

@Shack, well it looks like your PHP was configured without PEAR. I thought that PEAR_Log didn’t depend on the rest of pear and could be used standalone, but I guess I didn’t look close enough. I’ll need to work out another way to do logging I guess. Contact me directly and I’ll let you know when I’ve got something new for you to try.

update: Actually it is a standalone module, so PEAR isn’t the problem. I believe it may be your include_path, so I’ve made a couple of changes. Try the latest in SVN and let me know how it goes.

Okay, I got past the log error. When I go to the OpenID options page, everything looks okay, except the database tables.

At the top of the OpenID options page, there’s a spooky message about my database being out of date and that I need to Upgrade Wordpress. If I press on that link, it runs the normal Wordpress Upgrade script and tells me that no upgrade is required. No harm no foul, I guess. :-)

Then, there’s the message WordPress database error: [Specified key was too long; max key length is 1000 bytes] CREATE TABLE oid_associations ( server_url blob, handle varchar(255), secret blob, issued int(11), lifetime int(11), assoc_type varchar(64), PRIMARY KEY (server_url(255),handle) )

Then, All Systems Nominal. But with [FAIL] database tables.

Table oid_associations doesn’t exist. Table wp_shack_openid_nonces exists. Table wp_shack_openid_identities exists.

MySql is 5.0.46

[quote comment=“13298”]WOOT! Revision 20707 seems to have fixed my database table problems! I’ll let you know how it goes! Thanks![/quote] good, good. I did a lot of testing yesterday using WP 2.2 and 2.3, PHP4 and PHP5, TextDrive and DreamHost hosting environments. When all was said and done, it worked beautifully in all of them. I think we’re very close now.

Hi. I have test your subversion plugin and when i go to option after actived the plugin, I have this error message:

Warning: main(Auth/OpenID.php) [function.main]: failed to open stream: No such file or directory in /mnt/147/sdb/b/d/lpg.alfy/wp-content/plugins/openid/Auth/OpenID/Discover.php on line 7

Fatal error: main() [function.require]: Failed opening required 'Auth/OpenID.php' (include_path='/mnt/147/sdb/b/d/lpg.alfy/include:.:/usr/php4/lib/php') in /mnt/147/sdb/b/d/lpg.alfy/wp-content/plugins/openid/Auth/OpenID/Discover.php on line 7

Warning: Unknown(): open(/mnt/147/sdb/b/d/lpg.alfy/sessions/sess_7101ac931211fb56fc7fd803c80c8b13, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/147/sdb/b/d/lpg.alfy/sessions) in Unknown on line 0

My blog is http://costalfy.blogsite.org

bye

Will, I just noticed this in your blog and wanted to give you a heads up. Nothing to do with wp-openid.

The Quoter plugin has a bug in WP 2.3. In certain circumstances, it will automatically quote the last comment. For example, if you log out and view this post, so that the comment form Name and Mail fields are blank, you will see that Quoter automatically fills in the comment field with a quote from the pingback about OpenID and Microformats.

I published a hack fix for this in the Quoter Plugin comments.

Will, I just wanted to give you an update. So far, no major problems with wp-openid. I like!

Three things that I noticed--none of them show stoppers.

1) If registration is turned off and someone tries to register by logging in with OpenID, then it silently fails and just brings them back to the login screen. Probably should be some sort of message.

2) When I use delegation with my Verisign PIP OpenID, it always takes me two attempts to login via the login form. The first attempt gives me a message from PIP saying that I must be logged into PIP first (but I already am). And the second attempt works. I'm not sure if it's specific to PIP or if maybe there's something about the way I have delegation implemented on my website. Interestingly, I don't ever have the problem if I login by posting a comment.

3) I was thinking about different ways that one user could impersonate another user and how we might prevent it. Most of it isn't worth bothering with, but there's one small thing that we could do. Currently in wp-openid, it displays the name with a link to their website in the comment. Initially, the website link is their OpenID, but for many reasons they might change it, so that it would no longer show their identity. Also, one user could register with one OpenID and change their webpage link to mimic a different person's OpenID.

Seems like we could improve things considerably if we displayed two links in the comment. One link would always display the person's OpenID (perhaps the OpenID icon could link to this). And the other link could go to the webpage (probably the person's name would link to this). If a person had registered more than one OpenID with their account, I guess we'd display the first one. I think this one change would make it impossible to completely impersonate another person's identity.

Anyway, great work! The plugin looks solid.

@Shack - thanks, that's exactly the kind of feedback I was hoping for. I was really hoping to make a release this week, but I'm not sure that is going to happen. I'm in San Diego all next week for a conference, and will likely be spending the rest of this week and the weekend preparing for that. I think the plugin is pretty stable at this point, but I'd like to work out a few remaining bugs before tagging 2.0. If you happen to figure out solutions to any of these, that would be great to include them in the release.

And another possible bug... why does your gravatar show up in your second comment, but not your first? Did you put a different value in the email field, or did wp-openid not retrieve your email via sreg on one?

I'll really have to think about your third point there. You're absolutely right about it, but I'm not sure how to implement the solution. Having two links definitely works, but would break the elegance of the current implementation... right now I just add a class to the author link and let CSS handle the logo. Perhaps that could be another admin option or something.

Re: gravatar -- I was logged out before placing the first comment. So, I placed the comment and logged in simultaneously. When I placed the second comment, I was already logged in.

Maybe the gravatar thing is related to the Anonymous problem (I noticed you put that on the wish list). The Anonymous post about Quoter was me as well. I was logged out before placing that comment, too. It might also be related to the permissions I was giving when logging in. Several of the times that I've posted here, I've only given permission for the single login. But when I made the gravatar post, I gave permission forever.

re: Point 3 -- Looks like there's a filter #get_comment_author_link that might do the trick. I'll play around with it to see.

Hey, Will. Thanks for working on this. I get the following error:

WordPress database error: [Unknown column 'server_url' in 'field list'] REPLACE INTO wp_openid_nonces (server_url, timestamp, salt) VALUES ('', 1191539220, 'iu4sV9')

Here's the status info: [INFO] database tables Table wp_openid_associations exists. Table wp_openid_nonces exists. Table wp_openid_identities exists. [INFO] Include Path /home/.orelle/wgunn/betablog.williamgunn.org/wp-content/plugins/openid/ /usr/local/php5/lib/php/ /usr/local/lib/php/ [INFO] WordPress version 2.3 [INFO] MySQL version 5.0.16 [INFO] PHP version 5.2.3 [OK] Curl version [FAIL] library: GMP compiled into in PHP GMP does not appear to be built into PHP. This is highly recommended for performance reasons. [FAIL] library: BCMath compiled into in PHP BCMath does not appear to be built into PHP. GMP is preferred. [FAIL] Loaded long integer library The OpenID Library is operating Dumb Mode, since it doesn't have a big integer library. Recommend installing GMP support. [INFO] Cryptographic Randomness Source /dev/urandom [INFO] Plugin version [INFO] Plugin Database Version Plugin database is currently at revision svn-20754.

@MrGunn: try this... first disable the plugin, then manually drop any wp_openid_* tables in your database EXCEPT wp_openid_identities. Then go back and activate the plugin again. You might try deactivating and reactivating a couple of times.

[quote comment="13390"]

Hey Will - looking great. Tested r20894 - "options" issue still there.

[/quote] hmm... I haven't been able to replicate the error anywhere else, so I haven't been able to really debug it. My best suggestion would be to remove all traces of the plugin (drop the tables, delete the plugin itself, delete all options named oid_*) and then start fresh. I also seem to remember that when I had that problem with UTW, it seemed to be exacerbated by certain themes.

[quote comment="13387"]

Does this plugin really need to download a 77kb version of JQuery to add this simple (but useful) functionality?

[/quote] Hmm.. which plugin are you talking about? wp-yadis is using jQuery's interface plugin for the admin interface, but that's it. wp-openid is importing interface.js for most everything, but honestly I'm not sure that it is being used, so the answer very likely is "no, it really doesn't need to pull down the 77kb file". I'll look into it a little more to double check, but I think you're absolutely right... good call.

(I just spent an hour and a half looking at your parkour and freerunning videos. That stuff just blows my mind... what a job to have!) :)

[quote comment="13399"]

haha thanks! I didn't know I had an hour and a half worth of videos on there, but I'm glad you enjoyed yourself, it is a really fun job :)

[/quote] okay, so maybe some of that time was watching David Belle, but I did have to watch the K-SWISS one a few times. I love the fact that you used a Magnatunes artist in one of the videos as well... nice!

(hrm... guess I should try and stay on topic on my own blog? back to openid.)

[quote comment="13421"]

@Will, Tks. Complete reinstall of 2.2.2 solved the issue.

[/quote] sweet! this is gonna be my new solution for any future problems people have with the plugin -- reinstall WordPress! ;)

Heh! Bummer is it isn't so easily done on the live site, and after trying the install there I ran into the same prob. Deleting all the options didn't help, nor did deleting and then recovering the entire table.

Seems like this happens after a previous OID install was removed.

If anyone is getting this error...

Fatal error: Call to a member function setMask() on a non-object in /..../wp-content/plugins/wpopenid/core.php on line 153

Disable FAlbum. It has an issue with setMask.

Fatal error: Call to a member function getArg() on a non-object in /home/xxx/xxx/xxx/wp-content/plugins/openid/Auth/OpenID/Consumer.php on line 2001

Any ideas on how to fix this one? wp 2.3 & php 5.2.2

The plugin doesn't seem to work with http:// OpenIDs that delegate to https:// OpenIDs either. XRIs work great though. Thanks!
I recently did a fresh install of wp-openid on top of a fresh wordpress 2.3 installation. I was able to get it working, but had to manually create the database as others have. There was some trouble with the SQL for setting the primary keys that caused the entire operation to fail. Easy enough with phpMySQL, but not user friendly.

[quote comment="13788"]

The plugin doesn't seem to work with http:// OpenIDs that delegate to https:// OpenIDs either. XRIs work great though. Thanks!

[/quote] Turns out it was a problem with the CA cert bundle in libcurl. I've had the good folks at Joyent update that and it seems to work fine. See new FAQ item in http://svn.wp-plugins.org/openid/trunk/readme.txt

when i try to activate .. i get the following error.. does nay one know the fix ?

Warning: constant() [function.constant]: Couldn't find constant PEAR_LOG_WARNING in /home/www/blog/wp-content/plugins/openid/core.php on line 155

Fatal error: Call to undefined method Log_file::setMask() in /home/www/blog/wp-content/plugins/openid/core.php on line 156