Token Authentication
** Create a Token Collection
class MongoToken(Document):
key = StringField(max_length=44)
user = ReferenceField('**USERMODEL NAME**', required=True)
created = DateTimeField()
def __init__(self, *args, **values):
super(MongoToken, self).__init__(*args, **values)
# super().__init__(*args, **values)
if not self.key:
self.key = self.generate_key()
def save(self, *args, **kwargs):
if not self.id:
self.created = datetime.now()
return super(MongoToken, self).save(*args, **kwargs)
# return super().save(*args, **kwargs)
def generate_key(self):
return binascii.hexlify(os.urandom(22)).decode()
@staticmethod
def token_validator(token=None):
token_user = MongoToken.objects.get(key=token)
if token_user:
user = get_document_or_404( **USERMODEL NAME**,id=str(token_user.user.id))
return user
else:
return False
def __unicode__(self):
return self.key
Create Token :
[1]: token,created = MongoToken.objects.get_or_create(user=**user_object**)
[2]: user_token = token.key ### a12222dsdasdasd45787784546
Token Validation [ views.py ] [CBV]
[3]:
def post(self, request):
user_token=request.QUERY_PARAMS['token']
user_token = str(user_token)
return_data = {}
try:
### This query will return while it got success
user = MongoToken.token_validator(token=user_token)
return_data['status'] = 200
return_data['message'] = 'success'
except:
return_data['status'] = 404
return_data['message'] = "User Details not found"