new features in wpopenid+

I had a little time to kill this evening here at my office while I’m waiting for some of the Los Angeles holiday weekend traffic to clear out, and I spent a few hours on my little OpenID wordpress plugin. First, I fixed the issue of users not seeing the notification that their comment was awaiting moderation. It turns out, it has do with the weird logic wordpress uses to decide if they authored the comment; certainly a bug as far as I’m concerned and filed accordingly. I provided a simple patch with that bug report to fix the wordpress internal code, but I’ve also patched my plugin to do the same thing using filters in the meantime. That one wasn’t too hard once I found the right place for it, and I feel pretty comfortable with the approach…. it’s not ideal, but it’s at least consistent with how the other internal WP code works in this area.

The second feature I added is definitely a bit more “beta”… there is now a checkbox in the option page to turn off the creation of local wordpress accounts when people comment with their OpenID. This actually didn’t require writing a whole lot of new code, but rather a ton of refactoring of the existing code. This is not quite fully cleaned up, so don’t go installing this in your production environment, but it should be enough to play with it a little and make sure it works like you think it should. An interesting thing to note is that these two features are somewhat mutually exclusive… the bug report I mentioned kind of explains why for those that are curious. I do plan on trying to remedy that, but I’ve spent about all I can on this tonight.

I’d love to have some folks check the latest copy of the plugin out of subversion and give it a whirl (just please do it in a test environment :-) ). Feel free to leave comments on this post; if you’re reporting problems please include what version of wordpress and PHP you are using. There is still a bit of work to be done on it before I do a new release, and I may also wait for the 2.0 release of JanRain’s PHP OpenID library… they just published the first release candidate yesterday and I’m really anxious to start playing with it.

Comments and responses

[quote comment=“2306”]The “comment pending” message is not coming up on my dev installation. Is there anything I should do?[/quote] Hmm, I’d say go look at the logs but now that I think about it, I don’t think I added to much useful stuff there :) I’d try this… make sure you have the latest version (I just checked in revision 30 last night), make sure you have “create local accounts” turned on for now (you can try it turned off afterward), and delete all the cookies you have for the domain. Then try logging in by entering only a website, leaving name and email empty. If that works, turn “create local accounts” off, delete all cookies, and try again.

I’ll see about adding some more useful debugging statements to track things as they’re happening.

I see. If I do what you just wrote, it works as expect, which is kind of odd, since most people will still enter name and email, even though those are fetched from the OpenID, if a valid one is found. I will have to rework my comments form to make that more obvious…
[quote comment=“2309”]I see. If I do what you just wrote, it works as expect, which is kind of odd, since most people will still enter name and email, even though those are fetched from the OpenID, if a valid one is found. I will have to rework my comments form to make that more obvious…[/quote] no, that’s definitely a bug. It should work regardless of what information they fill in. I’ll take a look at that.
On the same topic (OpenID, JanRain, etc), you mentioned they have published and RC for 2.0, was that on the PHP Library? I looked and only saw Python. I would not mind using the RC, to report bugs, etc.
[quote comment=“2326”]On the same topic (OpenID, JanRain, etc), you mentioned they have published and RC for 2.0, was that on the PHP Library? I looked and only saw Python. I would not mind using the RC, to report bugs, etc.[/quote] They’ve published an RC for both Python and PHP. I believe there are a few API changes, so the PHP one likely won’t work with this plugin yet, but I haven’t tested it.
Nice to see that your patch was added to the main trunk and it will be on the next release (and now on SVN). Almost everyone I know (me included, of course) requires name and email to be entered, so the “edge” case might not be a biggie.
I can’t seem to find it explicitly stated anywhere, though I’ve yet to look into the code – does your fork offer an OpenID server like the “OpenID Comments” plugin did? Because I don’t like the idea of delegating an ID all over the net when I have my own host.
[quote comment=“2490”]I can’t seem to find it explicitly stated anywhere, though I’ve yet to look into the code – does your fork offer an OpenID server like the “OpenID Comments” plugin did? Because I don’t like the idea of delegating an ID all over the net when I have my own host.[/quote] no, this is simply a plugin for consuming OpenIDs, either for commenting or for logging in to existing accounts. The role of acting as an OpenID server is quite different, and should probably stay in a separate plugin. In fact, there are a number of projects that provide an OpenID server (notably phpMyID), that can easily be installed along side wordpress.
While trying to get this to work with Peter’s Anti-Spam (http://www.theblog.ca/?p=21), the security code that was entered is lost when it redirects you to GetOpenID.com. Is there a way to get it to validate the OpenID and capatcha at the same time?

Hi I have installed the plugin, but I have got an error. As soon as I tried to activate it, I got “Fatal error: Call to undefined function: set_include_path() in /home/sites/site4/users/duke-wie/web/blog/wp-content/plugins/wpopenid/openid-registration.php on line 919”

Looking at the blog, it had the OpenID logo by the login area, but when I tried to enter one, it crashed with the same error.

I’ve got WordPress 2.0.10. I’ve fogotten what the php version is, but I know that it’s the one that’s not quite enough to allow us to use WP 2.1 (? php v 3???)

[quote comment=“2976”]Hi I have installed the plugin, but I have got an error. As soon as I tried to activate it, I got “Fatal error: Call to undefined function: set_include_path() in /home/sites/site4/users/duke-wie/web/blog/wp-content/plugins/wpopenid/openid-registration.php on line 919”

Looking at the blog, it had the OpenID logo by the login area, but when I tried to enter one, it crashed with the same error.

I’ve got WordPress 2.0.10. I’ve fogotten what the php version is, but I know that it’s the one that’s not quite enough to allow us to use WP 2.1 (? php v 3???)[/quote] WP 2.0 and 2.1 have the same requirement on PHP version, some documentation says 4.1, other places say it’s 4.2. Either way, the error your getting is for a function that was created in 4.3. I didn’t realize the plugin had a higher dependency than WP itself, so I’ll look into that when I can.

update: I’ve filed a ticket so you can track the progress of this item if you’d like.

I am on a PC that runs Windows XP Home Edition (my Mac died last week and should get it back in a few days) and xampp for php, mysql, apache stuff. I just installed Wordpress and the openid+ plugin locally. after browsing for patches to fix the blank pages and comments not showing unless logged in issues, i finally got most things to work. One major thing that doesn’t work is the openid authentication.

as i mentioned before, i am running this locally. after getting redirected to myopenid provider and authenticated, i was sent back to the wp login page with this error: OpenID Authentication Failed: Server denied check_authentication. is that because i am running everything in my local box now? or is there something that i am missing?

i checked out the latest codes from your repository (r30).

thanks for the help.

try using the new repository located at wp-plugins.org (http://svn.wp-plugins.org/openid/trunk/).. I just haven’t gotten around to updating the project page with the new repository URL. I’ve never had any problems doing authentication with wordpress running on my local machine.
[quote comment=“9245”]Hi Will, just trying to install your plugin on my blog. It doesn’t work at the moment. I suppose because of my theme, but I want to make sure it’s not because of my openid-server.[/quote] without knowing what is actually wrong, I can’t do much. Either email me off-site or add a topic here (and make sure to tag it “openid” so I’ll see it).

I have the same error as Koesmanto

“OpenID assertion failed: Server denied check_authentication”

I’m running WordPress 2.1.3 and R30 of your release. I get the same error in .86 release of WPOpenID (standard edition). I can use my OpenID on other sites so I know it isn’t a problem on the provider side.

Jim

Hey Will,

does wpopenid+ work with wordpress 2.2? i checked out revision 14550 and am using WP2.2, but it gives me this error when I tried to activate wpopenid:

OpenID Consumer could not be activated, something bad happened. Skipping table create. Check libraries. Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 273165 bytes) in /Library/WebServer/Documents/projects/vidoop-website/wordpress/wp-includes/cache.php on line 48

Any ideas? Thanks!

P.S. it worked with WP2.1

(trying out to see if I get OpenId working here…)

I’ve installed revision 11698 of wpopenid+ and am running the latest WP2.2.1 version. I can get the blog address accepted with Livejournal, but when LJ tries to take me back to the blog, I keep getting the main login screen. This happens in any of the fields where I can use OpenID (login screen, register screen, default sidebar, comment form). I feel like I’m thisclose to getting it to work so it’s a bit frustrating… Am I missing something, or is it just an incompatibility with 2.2.1?

[quote comment=“10591”]Am I missing something, or is it just an incompatibility with 2.2.1?[/quote]

there have been multiple reports of problems with 2.2.1. In fact, a bounty has been offered to fix that and other issues (if I don’t get to them first :) )

Hi,

When I try to post a comment with my OpenID at my blog, I get the following error:

Fatal error: Call to a member function on a non-object in /data/web/wordpress/wp213/wp-content/plugins/wpopenid/openid-registration.php on line 472

I’m running Debian Etch, with php4 4.4.4-8+etch4 and WordPress 2.1.3 .

Any idea? If you need more information, please ask,

Alex