Вы уже упоминали, что используете django-rest-framework
и django-rest-framework-simplejwt
. Я бы предложил создать отдельный APIView
для получения сведений о текущем вошедшем в систему пользователе. Вам также следует создать сериализатор для модели User
.
Если вы правильно добавили нижеприведенную декларацию в свои настройки, тогда аутентифицированный пользователь должен быть доступен в request.user
.
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
}
.
Что-то вроде этого должно быть достаточно в вашем случае:
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
class UserDetailsAPIView(APIView):
permission_classes = [IsAuthenticated]
def get(self, request, *args, **kwargs):
user = request.user
profile = request.user.profile
data = {
'username': request.user.username,
'email': request.user.email,
'salary': profile.salary,
'company': profile.company,
'address': profile.address,
'gender': profile.gender,
}
return Response(data)