Make the extensions API easier to use by accepting openid.extension.Extension objects instead of extension_args tuple list
diff --git a/flask_openid.py b/flask_openid.py
index da5c782..cf648d9 100644
--- a/flask_openid.py
+++ b/flask_openid.py
@@ -489,7 +489,7 @@
return redirect(self.get_current_url())
return decorated
- def try_login(self, identity_url, ask_for=None, ask_for_optional=None, extension_args=None):
+ def try_login(self, identity_url, ask_for=None, ask_for_optional=None, extensions=None):
"""This tries to login with the given identity URL. This function
must be called from the login_handler. The `ask_for` and
`ask_for_optional`parameter can be a set of values to be asked
@@ -502,6 +502,11 @@
``fullname``, ``gender``, ``icq``, ``image``, ``jabber``, ``language``,
``msn``, ``nickname``, ``phone``, ``postcode``, ``skype``,
``timezone``, ``website``, ``yahoo``
+
+ `extensions` can be a list of instances of OpenID extension requests
+ that should be passed on with the request. If you use this, please make
+ sure to pass the Response classes of these extensions when initializing
+ OpenID.
"""
if ask_for and __debug__:
for key in ask_for:
@@ -515,9 +520,9 @@
auth_request = consumer.begin(identity_url)
if ask_for or ask_for_optional:
self.attach_reg_info(auth_request, ask_for, ask_for_optional)
- if extension_args:
- for namespace, key, value in extension_args:
- auth_request.addExtensionArg(namespace, key, value)
+ if extensions:
+ for extension in extensions:
+ auth_request.addExtension(extension)
except discover.DiscoveryFailure:
self.signal_error(u'The OpenID was invalid')
return redirect(self.get_current_url())