workaround
[ikiwiki] / doc / bugs / openid_postsignin_failure.mdwn
1 I tried enabling the openid plugin on my site. I tried to log in but got an 
2 error when coming back to ikiwiki.cgi: "Error: unknown do parameter". I think
3 this means that do=postsignin isn't handled by CGI.pm. 
4
5 The URI in question is fairly long, but if you want me to add it here, I can do that.
6
7 I didn't really know how to debug this so I grepped for "postsignin" in both 
8 openid.pm and passwordauth.pm and found:
9
10     IkiWiki/Plugin/openid.pm:               return_to => IkiWiki::cgiurl(do => "postsignin"),
11     IkiWiki/Plugin/passwordauth.pm:                         IkiWiki::cgi_postsignin($cgi, $session);
12
13 Am I barking up the wrong tree? Maybe I'm missing something obvious? 
14
15 I'm running 1.38 of ikiwiki and the newest CGI::Session, Net::OpenID::Consumer, 
16 Crypt::DH, URI-Fetch. --Ethan
17
18 > The url must not have a setting for openid.mode or openid_identifier in
19 > it. So the OpenId plugin didn't know that it was trying to log in. I
20 > think this points to an issue with the OpenID server. --[[Joey]]
21
22 >> I put debugging output in openid.pm and it suggests that the 
23 >> verification is taking place successfully. I see "openid.mode=id_res" 
24 >> in the URI. On top of that, it's the same Openid server I use
25 >> to sign in here on ikiwiki.info. --Ethan
26
27 >>> Yikes, I don't really have the newest CGI::Session after all.. 
28 >>> let me try updating that. --Ethan
29 >>>> Sorry, I'm an idiot -- cookies disabled on my browser. Sorry to 
30 >>>> waste your time.. --Ethan
31
32 >>>>> No problem, the error message could certianly use improvement.
33 >>>>> Although if I disable cookies, myopenid lets me know. Maybe you
34 >>>>> should paste the url. --[[Joey]]
35
36 I have cookies disabled on my computer, with a bunch of manual
37 exceptions. This includes myopenid, ikiwiki.info, livejournal,
38 and some others. Unfortunately it didn't include my own domain.
39 So the URI that myopenid redirected me to was fine, but because
40 I didn't have cookies set, I didn't have a session, and so 
41 session->param('postsignin') was undefined, so instead of being
42 redirected my query fell through CGI.pm to the bottom of cgi(), 
43 where I got the message above. In a perfect world I'd say that
44 it would be nice to let the user know that they can't sign in
45 w/o cookies, but I don't see any easy way of detecting that 
46 from CGI::Session. Maybe you know a way -- I have never used 
47 CGI.pm before, this isn't my forte (in case that  wasn't obvious).
48 --Ethan
49
50 > It's not easily possible to test for cookies, but it is possible to
51 > display a better error message in this failure mode. [[bugs/done]]
52 > --[[Joey]]