I'm getting the following error when I attempt to log in using my OpenID provider:

Unable to log in with your OpenID provider:

no OpenID identifier was provided.

I run an old PHP OpenID script which I know hasn't changed recently.

Has Stack Overflow changed their implementation, and if so what are the new requirements, or to what version of OpenID does it adhere?

I'm looking at it from a few other angles - perhaps my webhost made some changes without notifying me of them, but I want to make sure it wasn't a change on SO's side as well.

share|improve this question
    
Who's your provider? There were (are?) issues with Wordpress. –  ChrisF Feb 14 '11 at 15:16
    
@ChrisF I am my own provider. –  Adam Davis Feb 14 '11 at 15:17
    
Of course - it's obvious now I re-read the question. Sorry. –  ChrisF Feb 14 '11 at 15:23
    
@ChrisF No problem. –  Adam Davis Feb 14 '11 at 15:24
    
I'm suspicious of the "we have not changed anything for a while" SO response -- my PHP OpenID script stopped working around the same time, I filed a bug separately here –  Michael Mrozek Mar 9 '11 at 21:51
add comment

2 Answers

up vote 3 down vote accepted

Turns out my hosting provider changed something that modified PHP's header settings. Perhaps it was a regular php update with new security defaults, perhaps something else.

Regardless, the fix was to install a rewrite rule in .htaccess in the same directory as the phpmyid script:

RewriteEngine on
RewriteCond %{HTTP:Authorization} !^$
RewriteCond %{QUERY_STRING} openid.mode=authorize
RewriteCond %{QUERY_STRING} !auth=
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule (.*) %{REQUEST_URI}?%{QUERY_STRING}&auth=%{HTTP:Authorization} [L]

If you have command line access, the following commands will create the file for you:

echo 'RewriteEngine on' >> .htaccess
echo 'RewriteCond %{HTTP:Authorization} !^$' >> .htaccess
echo 'RewriteCond %{QUERY_STRING} openid.mode=authorize' >> .htaccess
echo 'RewriteCond %{QUERY_STRING} !auth=' >> .htaccess
echo 'RewriteCond %{REQUEST_METHOD} =GET' >> .htaccess
echo 'RewriteRule (.*) %{REQUEST_URI}?%{QUERY_STRING}&auth=%{HTTP:Authorization} [L]' >> .htaccess

I found my answer here, http://mikewest.org/2007/01/setting-up-an-openid-server-with-phpmyid , as it turns out that the error I was getting was actually "Missing expected authorization header."

share|improve this answer
add comment

No, we have not changed anything for a while on that.

Also, you can use your alternative google profile URL to log in as well, which seems to be attached to your accounts, at least the ones I saw.

share|improve this answer
    
Ok, thanks. I keep the google profile around in case something like this happens, but all signs seem to point toward a problem with my webhost. –  Adam Davis Feb 14 '11 at 20:11
add comment

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .