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/flask_openid.py b/flask_openid.py
index 66974ac..94e5952 100644
--- a/flask_openid.py
+++ b/flask_openid.py
@@ -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))