Как проверить, вошел ли администратор django в систему или нет?
У меня есть проект django, в котором есть 2 разные страницы входа.
- is in the landing page. ex: https://website.com/
- is the django admin login. ex: https://website.com/admin/ For both the login, I am using the same postgres user table.
Требование следующее, Когда я вхожу в систему со страницы входа на сайт, если пользователь имеет доступ к admin, он должен иметь возможность войти как на страницу входа на сайт, так и на страницу admin и наоборот. Когда я выхожу из любого из двух логинов, он должен иметь возможность выйти из обоих логинов, если вошедший пользователь одинаков для обоих логинов
Мой код входа и выхода с целевой страницы
@api_view(['POST'])
def login(request):
if request.method == 'POST' and request.data:
data = request.data
username = data['username']
password = data['password']
user = auth.authenticate(username=username, password=password)
if (user is not None) and (user.is_active):
auth.login(request, user)
token, created = Token.objects.get_or_create(user=user)
return Response({"username": str(user), "token": token.key, "status": STATUS['SUCCESS'], "message": MESSAGE_SUCCESS['LOGIN']}, status=status.HTTP_200_OK)
return Response({"status": STATUS['ERROR'], "message": MESSAGE_ERROR['LOGIN']}, status=status.HTTP_200_OK)
@api_view(['POST'])
@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated,))
def logout(request):
try:
if request.method == 'POST' and request.data:
data = request.data
username = data['username']
password = data['password']
user = auth.authenticate(username=username, password=password)
auth.logout(request)
update_session_auth_hash(request, user)
return Response({"status": STATUS['SUCCESS'], "message": MESSAGE_SUCCESS['LOGOUT']}, status=status.HTTP_200_OK)
except:
return Response({"status": STATUS['ERROR'], "message": MESSAGE_ERROR['LOGOUT']}, status=status.HTTP_200_OK)
В настоящее время я могу достичь только одной стороны этого, а именно Когда я вхожу в систему с целевой страницы, если он является администратором, он будет автоматически входить в логин администратора, аналогично при выходе из системы.
Я не могу войти или выйти из системы на целевой странице входа, когда я вхожу/выхожу из системы входа администратора.