Зашифруйте поле сообщения в django и отобразите его на React после расшифровки

Я клонирую приложение Whatsapp в качестве своего личного проекта. Я использую React в качестве фронтенда и Django в качестве бэкенда. Я использую MongoDB для хранения данных и django Rest framework для получения их на фронтенде (я не знаю, как получить их из MongoDB напрямую, поэтому, если вы можете, дайте мне знать. Это мне очень поможет). Поскольку это личные сообщения, даже зарегистрированные пользователи не должны иметь доступ к другим сообщениям, но я не могу скрыть их от других, поэтому я хочу зашифровать данные при хранении на бэкенде и получить их, расшифровав на фронтенде с помощью React. Я знаю несколько библиотек, которые Django имеет для шифрования поля, но как я могу расшифровать его на фронтенде?


#model.py

from email import message
from tkinter import Image
from django.db import models
from django.contrib.auth.models import User
from django.dispatch import receiver
# Create your models here.


class Room(models.Model):
    name = models.CharField(max_length=100,blank=True,null=True)

    def __str__(self):
        return self.name

class Message(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE,blank=False,null=True)
    message = models.TextField(max_length=500,blank=False,null=True)
    name = models.CharField(max_length=100,blank=True,null=True)
    room = models.ForeignKey(Room,on_delete=models.CASCADE,null=True)
    time = models.DateTimeField(auto_now_add=True)
    received = models.BooleanField(default=False,null=True)

views.py

from rest_framework.response import Response
from django.http import HttpResponse
from rest_framework.decorators import api_view
from App.models import *
from .serializers import messageSerializer, roomSerializer
from .pusher import pusher_client
from rest_framework.parsers import JSONParser

@api_view(['GET','POST'])
def getData(request):
    if request.method=='GET':
        message = Message.objects.all()
        person = messageSerializer(message,many=True)
    if request.method == 'POST':
        person = messageSerializer(data=request.data)
        if person.is_valid():
            person.save()
            pusher_client.trigger('chat', 'message', {
                # "id":request.data['id'],
                'user':request.data['user'],
                'message':request.data['message'],
                'name':request.data['name'],
                'received':request.data['received'],
                'time':request.data['time'],
                'room':request.data['room'],
            })
    return Response(person.data)

@api_view(['GET','PUT'])
def updateRoomData(request,pk):
    try:
        message = Message.objects.get(id=pk)
    except message.DoesNotExist:
        return HttpResponse(status=404)

    if request.method=='GET':
        serializer = messageSerializer(message)
    if request.method == 'PUT':
        serializer = messageSerializer(message, data=request.data)  
        if serializer.is_valid():
            serializer.save()
        else:
            return Response(serializer.errors, status=400)
    return Response(serializer.data)

@api_view(['GET','POST'])
def GetRoomData(request):
    if request.method=='GET':
        rooms = Room.objects.all()
        serializer = roomSerializer(rooms,many=True)
    if request.method == 'POST':
        serializer = roomSerializer(data=request.data)
    return Response(serializer.data)

frontend react:

Вернуться на верх