Sie können schaffen ein Verfahren Dekorateur Standardauthentifizierung zu implementieren. Wickeln Sie Ihre django Ansichten dieses Dekorateur verwenden.
def token_required(function):
def wrap(request, *args, **kwargs):
auth_token = request.META.get('HTTP_AUTHORIZATION_TOKEN')
if auth_token:
try:
token = Tokens.objects.get(token=auth_token)
user = token.user
except Tokens.DoesNotExist:
user=None
else:
r = {
'status': -1,
'message': 'Please provide a valid token.'
}
return HttpResponse(json.dumps(r), content_type="application/json")
if user:
request.user = user
return function(request, *args, **kwargs)
else:
r = {
'status': -2,
'message': 'User not Authorised, Please login'
}
return HttpResponse(json.dumps(r), content_type="application/json")
return wrap
Jetzt werden alle Ihre Anfragen einen Header wie unten dargestellt von diesem Dekorateur gewickelt Ansichten enthalten muss den Benutzer Innenansichten zu erkennen.
ZULASSUNG-TOKEN: some_token_value
Ihr Token-Modell wird ungefähr so aussehen wie unten dargestellt.
class Tokens(models.Model):
user = models.OneToOneField(User, related_name="tokens",null=False)
token = models.CharField(max_length=255, unique=True)
def save(self, *args, **kwargs):
if self.token is None or self.token == "":
import uuid
self.token=uuid.uuid4().hex
super(Tokens, self).save(*args, **kwargs)
Beispiel Verwendung von Dekorateur:
@csrf_exempt
@token_required
def your_view(request):
pass
Ich denke, dies sollte Ihnen helfen.
OK. Also, wo hast du Probleme in Django? –
Ich muss ein Modell, einen Serializer, einige Felder, Meta, usw. erstellen. Alle von denen werden nicht benötigt. Aber ich brauche immer noch die Auth (kann csrf_token nicht verwenden) –
Ich verstehe diese Antwort nicht. Du hast gesagt, du willst kein Django-Rest-Framework verwenden, was gut ist; Du musst also keines dieser Dinge erschaffen. Also, was hast du eigentlich gemacht und welches Problem hast du? –