Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

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
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=
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, , as it turns out that the error I was getting was actually "Missing expected authorization header."

share|improve this answer

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

You must log in to answer this question.

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