Middleware for writing Mxit apps with Django.
MIDDLEWARE_CLASSES = (
...
'mxit.middleware.RemoteUserMiddleware',
...
)
AUTHENTICATION_BACKENDS = (
...
'django.contrib.auth.backends.RemoteUserBackend',
...
)
Hit it with the correct headers and you'll be authenticated immediately:
$ curl -XGET 'http://localhost:8000/' \
-H 'X-Device-User-Agent: user-agent' \
-H 'X-Mxit-CONTACT: contact' \
-H 'X-Mxit-USERID-R: userid-r' \
-H 'X-Mxit-NICK: nick' \
-H 'X-Mxit-LOCATION: za,south africa,,,ct,cape town,,,,' \
-H 'X-Mxit-PROFILE: en,za,01-01-2013,,,' \
-H 'X-Mxit-USER-INPUT: <b>foo</b>' \
{
"username": "userid-r",
"mxit": {
"MXIT_NICK": "nick",
"MXIT_PROFILE": {
"gender": "",
"date_of_birth": "01-01-2013",
"tariff_plan": "",
"country_code": "za",
"language_code": "en"
},
"DEVICE_USER_AGENT": "user-agent",
"MXIT_CONTACT": "contact",
"MXIT_LOCATION": {
"city": "cape town",
"cell_id": "",
"network_operator_id": "",
"subdivision_code": "",
"client_features_bitset": "",
"country_code": "za",
"subdivision_name": "",
"country_name": "south africa",
"city_code": "ct"
},
"MXIT_USER_INPUT": "<b>foo</b>",
"MXIT_USERID_R": "userid-r"
}
}