[OpenID] setup_needed and user_setup_url

Martin Atkins mart at degeneration.co.uk
Wed Dec 24 22:41:54 UTC 2008


In OpenID 1.1, there was an extra argument on the "setup needed" 
response called user_setup_url, which gave a URL to send the user to to 
do "setup" of some description.

This was removed in OpenID 2.0, under the assumption that the RP could 
simply repeat the previous request as checkid_setup rather than 
checkid_immediate and get the same effect with fewer round-trips.

It turns out that the Net::OpenID::Consumer Perl library doesn't work 
when user_setup_url isn't present.

However, it's interesting to note that this wasn't apparent until 
Net::OpenID::Server (the companion OP library) was "fixed" to not send 
user_setup_url to OpenID 2.0 RPs.

This suggests to me that in fact all existing OpenID 2.0 OPs are sending 
user_setup_url in the 2.0 case, or else I'd expect to have heard reports 
of folks not being able to log in to sites using Net::OpenID::Consumer 
(which includes LiveJournal, TypePad and several Movable Type-based 
sites). I've heard no such reports and today was the first time I've 
encountered it, after I updated TypePad's OP libraries.

So I guess what I'm driving at is should user_setup_url actually be sent 
in the 2.0 case in practice, in spite of what the spec says?

It turns out that this is a difficult fix in Net::OpenID::Consumer since 
the API would have to change in an incompatible way in order to support 
doing setup via a checkid_setup request. If everyone's sending 
user_setup_url anyway, I'd rather just fix the spec to describe what 
everyone's doing (and change Net::OpenID::Server back) than cause 
unnecessary pain for users of the library.

Thoughts?





More information about the general mailing list