Использование токена, сгенерированного при входе в систему

Я разработал API для работы с моим веб и также генерирую токен при входе/регистрации из запроса Postman, используя knox для токена. Теперь я хочу использовать этот токен, который связан с учетной записью, которая вошла в систему, чтобы получить имя пользователя, чтобы я мог знать, какая учетная запись сделала запрос. Но я не уверен, как использовать этот токен. Может ли кто-нибудь дать мне совет, как это сделать, поскольку я совсем новичок в этом деле. Только вчера узнал, как сгенерировать этот токен. Спасибо !

views.py

@api_view(['POST'])
@authentication_classes([TokenAuthentication])
@permission_classes([IsAuthenticated])
def create_job(request):
    job = Job()
    jobserializer = JobSerializers(job, data = request.data)
    if jobserializer.is_valid():
        operation = jobserializer.save()
        data = {}
        if operation:
            data["Success"] = "Successfully created"
        return Response(data)
    return Response(jobserializer.errors, status=status.HTTP_400_BAD_REQUEST)

serializers.py

class JobSerializers(serializers.ModelSerializer):
    class Meta:
        model = Job
        fields = ['combinedparameters', 'servicedate']

models.py

class Job(models.Model):
    owner = models.CharField(max_length = 150)    
    datetime = models.DateTimeField(default=timezone.now)
    combinedparameters = models.CharField(max_length = 1000)
    servicedate = models.CharField(max_length=10)
    def __str__(self):
            return self.servicedate

В веб-браузере я получаю пользователя по request.user, но я не уверен, как использовать этот токен для получения пользователя в API.

Если пользователь аутентифицирован, вы можете найти вошедшего пользователя, который использует этот токен, токены обычно передаются в заголовке с каждым запросом.

Вы можете использовать сериализатор для пользовательских данных:

@api_view(['GET'])
def current_user(request):
    serializer = UserSerializer(request.user)
    return Response(serializer.data)

или без сериализатора:

@api_view(['GET'])
def current_user(request):
    user = request.user
    return Response({
        'username': user.username,
        'email': user.email
    })
Вернуться на верх