Sometime the OpenID server sends back information using POST queries.

If the number of information returned is too large, the server will send back information
using a POST query instead of GET. We should be able to handle both.

This situation can easily happens in large organization using OpenID for auth with the
openid-teams extension.
diff --git a/ b/
index 66974ac..94e5952 100644
--- a/
+++ b/
@@ -460,8 +460,9 @@
             if request.args.get('openid_complete') != u'yes':
                 return f(*args, **kwargs)
             consumer = Consumer(SessionWrapper(self), self.store_factory())
-            openid_response = consumer.complete(request.args.to_dict(),
-                                                self.get_current_url())
+            args = request.args.to_dict()
+            args.update(request.form.to_dict())
+            openid_response = consumer.complete(args, self.get_current_url())
             if openid_response.status == SUCCESS:
                 return self.after_login_func(OpenIDResponse(
                     openid_response, self.extension_responses))