Minh’s Notes

Human-readable chicken scratch

Minh Nguyễn
August 25th, 2007
Perl
#1,144

Edit

AIM OpenID Login 1.0 for Movable Type

Running Man

Source: AOL Canada

You might’ve noticed that I’ve been giving my website a bit more updating love than usual. Over the past couple weeks, I’ve resurrected my blog, upgraded the site’s blogging software to Movable Type 4.0 – which, by the way, is awesome – and updated Planet Xavier for the new school year. Now, as part of my ongoing, futile effort at garnering more comments from the blog-reading populace, my blog allows you to log in using your AIM or AOL screen name, meaning you no longer have to manually enter your name, e-mail address, and blog URL every time you post a comment here. At the bottom of any entry, click the “sign in” link, click the AIM tab, and this is what you’ll see:

AIM OpenID Login adds a tab to Movable Type’s login screen.

This feature is made possible by AIM OpenID Login, my first Movable Type plugin. It’s based on a similar plugin that MT product manager Byrne Reese just released for WordPress.com, and just like Byrne’s plugin, mine uses the OpenID protocol: basically, when you log on using your AIM screen name, my website talks to AOL’s to verify that you are indeed LoLcAtLoVeR31415. (You are, aren’t you?)

Note that this login screen, used when submitting comments, is different from the main MT login screen, so you don’t have to worry about random AIM users posting blog entries or anything. It’s similar to the LiveJournal login feature I had enabled on this blog before upgrading to MT 4; now LiveJournal support is built-in, as are all of Six Apart’s properties.

Download

So if you’re a Movable Type user, you can add AIM support to your login screen by downloading this plugin:

AimOpenId-1.0.tar.gz (tarball, 8 kB)

System requirements

In order for this plugin to work, your website needs to have Movable Type version 4.0 or above installed. Although the Digest::SHA1 Perl module is considered optional for installing MT, you’ll need it for this plugin. Run mt-check.cgi for information on how to obtain it.

Installation

  1. Download the tarball and unzip it.
  2. Upload the contents of the mt-static folder to the mt-static directory on your server, making sure to preserve the folder’s structure. Unless you installed MT in a cgi-bin or cgi-local directory, mt-static should be directly within the mt directory.
  3. Upload the contents of the plugins folder to the plugins directory on your server, making sure to preserve the folder’s structure. The plugins directory should also reside within your mt directory.

Setup

Once you’ve installed AIM OpenID Login, you’ll want to add the AIM tab to MT’s login screen. This is a per-blog setting, so go in MT, to a blog of yours and select the Blog Settings item under the Preferences menu. Under the Registration tab, there should be a checkbox labeled “AIM”. After checking that box and pressing Save Changes, you should be good to go – no rebuilding necessary. (If you’re running MT on FastCGI, however, you may have to wait awhile.)

Known issues

Though this plugin will provide AIM users with a customized login screen, they’ll be treated as ordinary OpenID users thereafter. This means:

  • MT refers to the commenter by their OpenID URL, something like http://openid.aol.com/LoLcAtLoVeR31415.
  • The user’s URL is accompanied by the OpenID logo, rather than the AIM Running Man logo.

Both issues affect comment listings within MT, as well as static comment listings on your blog. As far as I know, both issues are because MT treats LiveJournal, Vox, and TypeKey as “core” authentication services, whereas AIM is just an add-on.

License

I can’t claim credit for much of the code, since it’s mostly adapted from Byrne’s WordPress plugin. However, I did fix a few small details, like the Sign In button. As Byrne’s plugin is licensed under the GNU General Public License, version 2, mine is too. In the future, when I’m more familiar with Perl and MT’s APIs, I’ll be able to write plugins on my own and distribute them under a more permissive license, but the GPL won’t stop you from trying out this plugin, which is what matters.

The AIM “Running Man” logo is copyright and a trademark of AOL, so naturally, it’s not covered by the GPL. I’ve only bundled it with the plugin for your convenience, since most users won’t recognize anyone but this little yellow guy as AIM. I advise you to excise it from your computer with the utmost care and urgency, upon downloading this plugin. (Your users may not appreciate that, however.)


TrackBacks

  1. The other day Byrne released a plugin so that MovableType users could allow Wordpress.com users authenticate to make comments. That was impressive. Seeing a Wordpress logo on a MT install you'd have to stop for a moment to wonder if...

  2. MT4はコメント投稿の為の認証部分が、今までよりも拡張されている。OpenID関係の認証プラグインやその他の認証プラグインが、数々登場しているので、すこーしご紹介。

  3. From the I-should-have-blogged-about-this-literally-a-month-ago department, AIM OpenID Login has been released as part of Six Apart’s Motion package.


Comments

  1. Thanks for the AIM Login, MN. I know it's more work, but do you think you or if you know of someone else who can, do the same for Gtalk/Gmail and Yahoo as well. That'd lovely. Thank you.

    1. This plugin relies on Movable Type’s OpenID support; unfortunately, Google and Yahoo! don’t support OpenID. For Google Talk, there is the official-sounding South African XMPP Federation OpenID Server, which you can use to create an OpenID based on your GMail address, but it looks a pain to use. For Yahoo, there’s idproxy.net, which looks a bit nicer. With an OpenID, you can simply use the OpenID tab in the login form.

      I am, however, looking at ways to expand the login form beyond OpenID. Google has an API that lets you do something similar for Google Accounts, including GTalk and GMail; Yahoo! does too. I’d also like to do something similar for Facebook, though I suspect that doing so may violate Facebook’s developer terms of service. Google and Yahoo! seem the more likely paths, since there’re already Perl modules for Google and for Yahoo! that takes care of most of the work.

      So in short, I’ll look into it. Sorry if this response is too cryptic; I’m just thinking out loud.

  2. Did you have to modify your movabletype at all to do this? I've never been able to make aol's openid server work on my blog and my bug report to sixapart didn't help. It obviously worked signing in here and it works on the movabletype.org blog, so I've been confused for weeks...

    1. No, I didn’t make any modifications to my installation, other than installing the plugin. So you’ve followed the setup instructions? Since my installation runs on FastCGI, I had to wait a couple hours before seeing the AIM option, but that’s it. Does your Activity Log say anything about it?

  3. It isn't the set up of the plug in that I have issues with.
    If I type http://openid.aol.com/cowsandmilk in the openid sign in on your blog it works, if I type it in on mine, I get "An error occurred: The sign-in attempt was not successful; please try again." This doesn't happen for livejournal, wordpress, myopenid, or any other service I've tested, just aim and its frustrating...its probably something in my perl install that's messed up, but I don't have time to check it out.

    Its not making my life fun (I actually copied and pasted the livejournal auth during the MT4 beta to make myself an AIM openid plugin, but I could never test it because their openid urls don't work on my blog at all).

    1. It sounds like you’re making it through AOL’s login process, but your mt-comments.cgi is what’s giving the error (though you probably know that already). Have you tried re-uploading a fresh copy of mt-comments.cgi, or maybe the lib directory?

  4. Hi.
    I just upgrading to MT4, mainly for better OpenID comments (I used the external plugin for MT 3.35).
    This looks like a handy addition for my readers :)
    Do you happen to know where the html the user sees is stored? I would like to localized the user-facing part of the login to Hebrew for my blog.

    Thanks!

    1. Hi Shoshannah, you might want to take a look at the Customized Sign In Templates plugin, which lets you replace the MT branding with your own, for example.

      That’d probably let you customize most of the sign in screen, but to translate the AIM tab, you’ll need to modify the plugins/AimOpenId/AimOpenId.pl file inside this plugin. On lines 70, 75, and 79, there should be <__trans> or <MT_TRANS> tags that you can replace with Hebrew.

      (The <__trans> and <MT_TRANS> tags would automatically translate to MT’s interface language, but of course MT doesn’t support Hebrew, so you’d need to do this manually. Note that this approach will modify all blogs on your installation.)

  5. In relation to the AOL openid server not working, intalling libcrypt-ssleay-perl from the Ubuntu package servers fixed it. Just in case someone else comes looking for a solution, it has to do with AOL using https.

  6. I was having problems getting this plugin (v1.0) to work on MT 4.23, so I went in and hacked it up a bit. It seems to work now. Here's a diff of my changes to AimOpenId/lib/MT/Auth/Aim.pm

    
    35c35,36
    < sub _get_nickname {
    ---
    > sub get_nickname {
    >   my $class = shift;
    42c43
    <     *MT::Auth::OpenID::_get_nickname->(@_);
    ---
    
    

    > $class->SUPER::get_nickname(@_);