Metadata-Version: 2.1
Name: mwoauth
Version: 0.4.0
Summary: A generic MediaWiki OAuth handshake helper.
Home-page: https://github.com/mediawiki-utilities/python-mwoauth
Author: Aaron Halfaker / Filippo Valsorda
Author-email: aaron.halfaker@gmail.com
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Security
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE
Requires-Dist: PyJWT>=1.0.1
Requires-Dist: oauthlib
Requires-Dist: requests
Requires-Dist: requests-oauthlib
Provides-Extra: flask
Requires-Dist: flask; extra == "flask"

MediaWiki OAuth Library
=======================

``mwoauth`` is an open licensed (MIT) library designed to provide a simple means to performing an OAuth handshake with a MediaWiki installation with the `OAuth Extension <https://www.mediawiki.org/wiki/Extension:OAuth>`_ installed.  

**Compatible with python 3.x**

**Install with pip:** ``pip install mwoauth``

**Documentation:** http://pythonhosted.org/mwoauth

Usage
=====

.. code-block:: python

	from mwoauth import ConsumerToken, Handshaker
	
	# Construct a "consumer" from the key/secret provided by MediaWiki
	import config
	consumer_token = ConsumerToken(config.consumer_key, config.consumer_secret)
	
	# Construct handshaker with wiki URI and consumer
	handshaker = Handshaker("https://en.wikipedia.org/w/index.php",
	                        consumer_token)
	
	# Step 1: Initialize -- ask MediaWiki for a temporary key/secret for user
	redirect, request_token = handshaker.initiate()
	
	# Step 2: Authorize -- send user to MediaWiki to confirm authorization
	print("Point your browser to: %s" % redirect) # 
	response_qs = input("Response query string: ")
	
	# Step 3: Complete -- obtain authorized key/secret for "resource owner"
	access_token = handshaker.complete(request_token, response_qs)
	print(str(access_token))
	
	# Step 4: Identify -- (optional) get identifying information about the user
	identity = handshaker.identify(access_token)
	print("Identified as {username}.".format(**identity))

