I’d like to go to IndieWebCamp next year. I found out about it when I checked out Ward Cunningham‘s Smallest Federated Wiki project. It’s an annual conference in Portland, OR that started this year. The conference is dedicated to participants building their own websites, that are under their control, and helping each other do the same. Only Builders and Apprentices (people invited by builders who want to become builders) may attend.
As part of requiring that participants have their own personal websites, we are required to have OpenID on their our domain to log in. We can run our own server or use delegation. Running an OpenID server generally means setting up an application with a database. Delegation is quite a bit simpler. All that it requires is adding a few meta tags. Here are mine:
<link rel="openid.server" href="http://www.myopenid.com/server" /> <link rel="openid.delegate" href="http://be.myopenid.com/" /> <link rel="openid2.local_id" href="http://be.myopenid.com" /> <link rel="openid2.provider" href="http://www.myopenid.com/server" /> <meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=be.myopenid.com" />
There are three different standards referenced: OpenID, OpenID2, and XRDS. Not all are used by a given server. I tried removing all but the OpenID2 lines and logging into IndieWebCamp still worked (lines 3-4).
To log in, I type the address where my OpenID delegation is, http://id.benatkin.com/, and IndieWebCamp’s OpenID plugin for MediaWiki sends me to MyOpenID to log in.
This is different from using MyOpenID directly in that if I decided to use a different service, or my own, I could. This is a big part of IndieWebCamp: being free from lock-in, even if you really like the service provider.
I also wrote a WordPress plugin, specifically for MyOpenID, which lets me specify my MyOpenID username and adds the needed meta tags. It’s called WordPress MyOpenID Delegation. Unfortunately, it only works for me if I remove the W3 Total Cache rewrite rules from my .htaccess file. This is because apparently the two OpenID client websites I tried (Indie Web Camp and a test site) don’t follow 301 redirects to find a delegate. I removed them and checked how much it slowed things down. After fiddling with
ab and getting the idea that it slows things down quite a bit, I added the W3 Total Cache rewrite rules back to my .htaccess, and set up a static page on http://id.benatkin.com/ instead.
It was good practice for writing a WordPress plugin, though. I learned how to add something to the header using a hook, how to only add it to the root page by checking is_front_page(), how to add a setting to General Settings, and very importantly, how to escape HTML in WordPress.
What was interesting to me was how little my code was about using PHP and how much it was about finding the right APIs.
I’m going to try to get this working with my rewrite rules later. I may make it use a different path for my openid, like
/openid, rather than my root path. But in the meantime, I’m off to write another WordPress plugin.
Inspired by your plugin, I created an OpenID delegation plugin that works with any OpenID providers.
Its like you read my mind! You seem to knoiw so much about this, such as you wrote the guide in iit or
something. I believe that you just could do with a
few p.c. to pressure the message house a little bit, however other than that,
thios is wonderful blog. A fantastic read. I will definitely be back.
Hello to every , because I am truly eager of reading this webpage’s post to be updated daily.
It carries pleasant data.
I rarely create responses, however after browsing a few of the comments here OpenID Delegation: My First WP Plugin – Benjamin Atkin. I actually do have
a couple of questions for you if you do not mind. Is it just me
or does it look as if like some of the remarks look like they are coming from brain dead folks?
:-P And, if you are writing at other sites, I would like to keep up with anything new you have to
post. Would you make a list of the complete urls
of all your shared pages like your Facebook page, twitter feed, or
?ec?ntemente é muito infel?z localizar bons s?tes. Porém, esse me impressionou.
Bem notável. Prezei dos compostos.