Implementing a client: Where's the HOWTO?

Dan Lyke danlyke at flutterby.com
Thu May 19 18:23:29 PDT 2005


Stupid questions time: I'm burned out on working on 3d animation
software all day and have decided to relax by digging into some Perl
code. Yes, I am a sick puppy.

So: I have a weblog content management system[1]. I already have
several different methods of authentication, including LID(tm), but
being a "new features is better!" weenie, I obviously want to add
YADIS/OpenID logins as soon as possible.

I'm reading through the spec at http://www.danga.com/yadis/specs.bml
and I'm trying to understand a few things. If I get the sequence
right:

1. I present the user with a login screen that contains, as one of its
   options, a "YADIS/OpenID" URL entry.

2. When the user presses "submit", I send a redirect to that URL with
   the following arguments appended (if the string already contains a
   "?". then they're appended with an intervening "&", otherwise it's
   a "?"):

   return_to - a URL which can contain state information about the
   user session (ie: something like
   "http://www.flutterby.com/openidlogin.cgi?sessionid=1123891751")

   trust_root - The URL of my site (ie: "http://www.flutterby.com/")

   is_foaf - ? Got an example of what this is supposed to have in it?

   post_grant=return

3. Magic happens at the user's URL, and then I get a redirect back to
   the return_to URL with:

   _mode=id_res

   assert_foaf - ? Some tag I need to validate in some way ?

   user_setup_url - a place I can redirect the user to if I can't make
   sense of assert_foaf. I assume that this will maintain my state
   information as mentioned in my "return_to" notes above.

4. To validate that assert_foaf, I do a GET of the user's original
   YADIS/OpenID URL, look for some FOAF autodiscovery tag, do another
   GET to retrieve that file, and... do... something.

So, my questions are:

1. What do I stock is_foaf=... with?

2. What do I do with assert_foaf?

3. What does the FOAF autodiscovery tag look like?

4. What's the extension to FOAF that I do something with to check the
   assert_foaf thingie?

Thanks!

Dan

[1] Available from http://www.flutterby.net/ . It's the first (and so
    far as I know, only) weblog system to have a bidirectional NNTP
    interface, LID authentication, plus all of the other usual crap.



More information about the yadis mailing list