Django-React не сохраняет вход в систему
У меня есть сайт на React JS - Django, и я реализовал функциональность входа в систему. Но я увидел, что пользователь не остается под своим логином, даже если он проходит аутентификацию и переходит на главную страницу после входа. Я пробовал отображать имя пользователя, когда он переходит на главную страницу, но оно возвращается пустым.
Views.py
class Login(APIView):
def post(self, request):
username = request.data.get('username')
password = request.data.get('password')
# Authenticate user
user = authenticate(request, username=username, password=password)
if user is not None:
# If authentication succeeds, log in the user
login(request, user)
return JsonResponse({"message": "Login successful"})
else:
# If authentication fails, return error response
return JsonResponse({"error": "Invalid username or password"}, status=status.HTTP_400_BAD_REQUEST)
Login.js
const handleSubmit = async (e) => {
e.preventDefault();
try {
const response = await fetch("http://localhost:8000/login/", {
method: 'POST',
withCredentials: true,
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ username, password })
});
const data = await response.json();
if (response.ok && data.message === "Login successful") {
// Redirect to the home page upon successful login
navigate('/');
} else {
// Set error state with the error message
setError(data.error);
}
} catch (error) {
// Handle network or server errors
setError("An error occurred during login. Please try again later.");
}
У меня также есть необходимое промежуточное ПО сессии в файле settings.py.
Я пробовал добавить промежуточное ПО в settings.py и возраст куки сессии, но это тоже не помогло